x Volume 1, Number 3 $2.50 (USA)
May/June 1981 u 2120 (UK)
Graphics: a Translating from Other Basics
@ Automatic Display Changes
a Graphics Tricks j w Keyclick Generator
e Hunt for Gold
e Walls and Dikes
Adventures of
Crash Cursor
Games:
e Hammurabi
e Black Hole
e Gauntlet
e Forest Treasure
e Mastermind
Inside the ZX80 Keyboard
Handling Character Strings
SYNTAX ZX80
A PUBLICATION OF THE HARVARD GROUP
SYNTAX ZX80 is a brand-new monthly newsletter
created just for you. We bring you news, reviews and
forecasts of hardware, software and applications for
your ZX80 or MicroAce, as well as technical details
for circuit-builders. SYNTAX also provides a forum
for users to share advice and problems about pro-
grams, vendors and topics of mutual interest. As more
products become available, we’ll bring you the ads
and releases that keep you informed.
At SYNTAX we emphasize practicality. You can
apply our suggestions even if you aren’t sure at first
why they work, because we give you complete instruc-
tions. Text is clear and easy to understand. SYNTAX
readers already know about:
An automatic phone-dialer they can put to-
gether in a few hours
e Syntactic Sums™ to check input for errors
e Printing characters four times normal size
e
e
Programs to explore computer memory
Cassette eavesdropping to locate files on
tape and simplify loading
e How to build their own external additional
RAM
e How to add an 8212 I/O chip to control ex-
ternal devices from their computers
And SYNTAX readers like what they get every
month. Subscribers know they can depend on us.
After receiving only three issues of
SYNTAX ZX80, I find that I anxiously
await the next issue... keep up the
ood work! .
8 Martin Irons
Goshen, NY
Congratulations on the brass-tacks, down-
to-earth approach of your newsletter. I'll
be looking forward to future issues.
Otis Imboden
Washington, DC
Many readers get their first issue and immediately
order the back issues — more proof that they like what
they see.
Bolton Road, Harvard. Mass. 01451
exp. date
signature
[] My check for $25 is enclosed.
account number _
What’s special about our publication? Just look
through one issue. We work hard to bring you a qual-
ity newsletter. We strive to print useful programs of
above-average accuracy. As any computer magazine
editor can tell you, program listing accuracy is tough
to achieve, but we boost our average with every issue.
We test each program to make sure it works, it fits in
the designated RAM, and it runs when you follow the
directions. We print program listings in screen-image
format to make it easier for you (it’s sure not easier
for us!) to enter programs accurately. We invented
Syntactic Sum™ as an additional aid for you in get-
ting error-free programs. With your subscription you
also get access to hundreds of other readers, and our
staff experts are available by phone to answer your
questions or help you solve problems with your
machine.
SYNTAX readers get every month:
e Latest news of Z80 hardware and software
e Programs to organize information, calculate,
entertain, or instruct
e Do-it-yourself additions to the ZX80/Micro-
Ace
e Clear explanations for beginners
To share the benefits of SYNTAX ZX80, just com-
plete the coupon below and return it with your choice
of payment. You will receive a year’s subscription, 12
issues, for only $25 in US funds (plus $13 for foreign
airmail if you live outside North America).
We are so sure you'll find SYNTAX useful that we
promise to refund your entire subscription fee if you
aren't satisfied. An unconditional guarantee — you
can’t lose. But if you’re still skeptical, write for a free
sample issue and see for yourself how SYNTAX can
help you use and enjoy your ZX80 or MicroAce more.
Join the others who stretch the ZX80s and Micro-
Aces to their utmost. Act now — as soon as we receive
your coupon with payment, your first issue will be on
its way. For faster service, phone your credit card
order to 617/456-3661. Don’t miss SYNTAX!
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — e — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
YES! Please send me 12 issues of SYNTAX for $25.
[ J Please charge my [L] MasterCard
(J Visa L] American Express
[] Diner's Club account.
bank number (MC only)
lowna O Sinclair ZX80
O MicroAce computer. Name
Organization
Address___ _ l _ _
City
Phone No. (
Title _
State Zip ` `
(oo) Home Phone No. ( )
S681
N Oo Ub G WN
The magazine for Sinclair 2X80 users
ESL om
May/June 1981
LOMO a5 ys. no 4064s anotada AGRO See rapid CESS
Glitchoidz Report.....................................
First Aid for Your Keyboard.................... Bridges
Dealing with key problems
ZX81 Announced in Great Britain......................
Unfriendly Skies................................ Lubar
A software review
Handling of Character Strings in the ZX80....... Taube
Using USR(47)
26
27
30
32
33
33
More Truthin Programming........ Lubar
Using NOT
8 BuckHole.............. O sss Eckel | 34
Shoot out the stars to escape
1 0 The SYNC Challenge................................. 35
Winners announced; and winning program
1 2 Auto-Display-Changing......................... Logan 36
Second in a series on machine language
46 Looking Inside thezx8g0... J... a... shanko | 40
Memory listing program
18 Puzzles and Problems....................... Townsend 42
20 Mastermind................................... Fowkes 45
Nine chances to beat the ZX80
22 Graphics Surprises............................ Parsons 48
Randomizing graphics for “Walls and Dikes”
Staff
Publisher/Editor-in-Chief
Editorial Director
Managing Editor
Associate Editor
David H. Ahl
George Blank
Paul Grosjean
David Lubar
Secretary Elizabeth Magin
Production Manager Laura MacKenzie
Typesetter Jean Ann Vokoun
Financial Coordinator William L. Baumann
Bookkeeper Patricia Kennelly
Patricia Brown
Joan Swihart
Customer Service
Order Processing
Circulation Suzanne Guppy
Frances Miskovich
MEMBER Dorothy Staples
May/June 1981
Index to Advertisers
Advertiser
Artic Computing
Basic Computer Games
Bug-Byte
CAI Instruments
Computers in Mathematics
Creative Computing
Creative Computing Back Issues
Harvard Group
Hewson Consultants
Lamo-Lem
Linsac
LJH Enterprises
New England Software
Outbound Engineering
Peripherals Plus
SYNC
SYNC T-Shirt
Tales of the Marvelous Machine
Tensor Technology
Zeta Software
Volume 1, Number 3
Variable Conversions in the ZX80.......
From one variable to another
Loco... Sutton
Graphics, Games, and Gold..................... Oakes
Building program units
A Trick and a Graphic System................... Comer
Draw your own pictures on the ZX80
o AA Berggren
A dash between monsters and walls
SYNC Reader Survey.................................
A A
A column for short programs
Forest Treasure...._............................ Frahm
Overcome the dangers for the gold
Translating from Other Basics................... Lubar
ON...GOTO and LEN
8K Basic ROM and 16K-Byte RAM..........
Specifications
Key Click Generator.......................... Johnson
Making entries audible
ZX80 Keyboard.............................. Ornstein
Locating key closures
Crash Cursor.................................. Truman
The Glitchoidz strike
Resources......
Po... S Š$ $ é & . $ Q Q $ %*
Volume 1. Number 3
Page
SYNC is published bi-monthly for $10.00 per year
4 by Creative Computing, 39 E. Hanover Ave., Mor-
19 ris Plains, NJ 07950. Second class postage paid at
8 Morris Plains, New Jersey 07950, and additional
Cover 4 entry offices.
29
39 Postmaster: Send address changes to SYNC, P.O.
24, 25 Box 789-M. Morristown. NJ 07960.
Cover 2
4 Subscriptions in USA: 6 issues $10; 12 issues $18;
5 18 issues $24. UK and foreign airmail subscrip-
7 tions: 6 issues £10; 12 issues £18; 18 issues £25. Call
7 (800) 631-8112 toll-free (in NJ, 201-540-0445) to
10 begin your subscription.
17
16 Copyright 1981 by Creative Computing. All rights
Cover 3 reserved. Reproduction prohibited in any form.
12
41
10
Ly
Randomizing
- Your Music
Dear Editor:
In Richard Forsen's program—“Making
Music with the ZX80"— lines 0001 to
0999 can be replaced with a simple con-
tinuous random music generator.
500 LET P=RND 17
510 LET X=RND(8)*10
520 GO SUB 970+P*30
530 GO TO 500
Forsen's pitch scale (lines 1000 to 1500)
may be used intact. When this program is
run, it produces a continuous series of
tones of random pitch and duration. The
limits within which pitch and duration
vary may be changed by altering the
quantities in lines 500 and 510. Reducing
the pitch limits somewhat will increase
the frequency with which the tones seem
to have some melody.
Cecil Bridges
1248 N. Denver
Tulsa. OK 74106
Crash Advice
Dear Editor:
David Tebbutt (SYNC Jan/Feb ‘81) has
found one too many ways to crash the
ZX80. As Hugo Davenport (ZX80 Manual.
p. 114) states, pressing EDIT in response
to INPUT “doesn’t actually crash the
system.” However. Mr. Davenport offers
no further help.
In this situation, a LIST will appear
with part or all of the line to which the
cursor is presently positioned shown in
an apparent EDIT mode. RUBOUT the
entire line. Enter the required response.
providing quotation marks if INPUTing a
string. Press NEWLINE and proceed.
I hope this will be of help.
Sincerely yours,
SUNFLOWER SYSTEMS
Karl Brendel
420 South Eighth
Salina, KS 67401
2
More Channel 2 Tips
Dear Editor:
I’m quite impressed with the first issue
of SYNC. Its format. quality and contents
echo the best of Creative Computing —the
favorite of friends and acquaintances. I
have. however, an important recommenda-
tion for you, your staff. and writers which
will be of help to other beginning
micronauts such as myself: Please indicate
in the introduction to program listings
the minimum RAM requirements. Some
of us aren't yet able to guess by looking at
a listing if it will fit in 1K! It'll save a lot of
unnecessary typing and disappointment.
For those ZX80 owners who are experi-
encing interference problems with TV
connections. I've listed several suggestions.
In the Bay Area. VHF Channel 2 is used
for regular broadcasting. This makes it
very difficult to eliminate station signals.
l. If you monitor your LOADing with
an earphone. unplugging it when not in
use will eliminate the interference it causes
the television receiver.
2. Some metal objects seem to create
annoying distortions and ripples in the
screen image when near the ZX80. Remov-
ing card file boxes. paper hole-punchers
and even stacks of cassette tapes has helped
in my case.
3. Try touching the shielded TV cable
(which plugs into the Z X80) to one of the
VHF terminal screws now accepting a
signal from the ZX80 adapter box. I have
found this to produce enough of a ground
to clear up unstable displays and ghosts.
Just tape the cable in position.
Respectfully.
Colin Alexander
120-28th Street
San Francisco. CA 94131
Tic Tac Toe
Dear Editor:
In Jeffrey Hoffman's “Tic. Tac. Toe”
(SYNC 1:32) a CLS statement must be
added to keep the screen display from
overflowing:
442 CLS
The program also has some algorithmic
problems:
1) The final board is not displayed when
there is a winner on move nine.
2) Moves to occupied spots forfeit the
player’s turn (noted by Hoffman).
The first problem can be solved by
adding three lines and changing nine others.
The new lines are:
5 LET Z=0
175 IF Z=1 THEN GOTO 470
178 IF Q2=10 AND Z=0 THEN GOTO
490 to THEN LET Z=1
The lines to be changed are:
100 Change to FOR Q=1 TO 10
370-440 Change THEN GOTO 470 to
THEN LET Z=1
This letter is not meant to be negative
but an incentive to maintain high editing
standards for SYNC—we the readers
care.
SYNCly.
Peter Beck
54 Richwood Pl.
Denville. NJ 07834
If A CA
>=
SYNC Magazine
Glifehoidz
heport
The GLITCHOIDZ REPORT will pass
on to our readers errors, problems, and
other Glitchoid activities which have been
discovered. We welcome your contribu-
tions to this column.
Random Graphics (1:22)
Some readers reported difficulties in
getting this program to run. It will run as
printed. Note especially the last two para-
graphs.
Castle Doors (1:30)
As many readers have found, this is a
2K game.
Correct:
48 IF D=2 THEN A=RND (30)
140 Insert a space after PRINT
Basic Accounting with Decimal Currencies
(1:36) 2K
Make the following line additions and
corrections:
197 GOSUB 1000
350 LET X=G
360 LET Y=G2
365 GOSUB 8000
465 GOSUB 600
8010 GOSUB 2000
Omit 8100
Artillery (2:27)
The GLITCHOIDZ had their biggest
triumph to date in SYNC in shooting down
the Artillery game. We were almost in
shell-shock when we discovered the mag-
nitude of their success, thanks to many
readers. Enter the following corrections
in your program:
Note: in Line 500 ** means “power”
and is correct. It must be entered on the
“H” key.
May/June 1981
`
e
s `
Memory Display (2:16)
Note in using this program:
Lines 50 and 90: no spaces between “”.
The program displays addresses only
below $8000.
Correction: 200 LET X=PEEK(A +1)
Truth in Programming (2:18)
Column 3:
30 IF CODE(G$)=52+(N/2=N-N2)*
Three lines further:
...tO be evaluated as -1
Widget (2:23)
330 PRINT “LAST MONTH YOU SOLD
258,00”
Tic Tac Toe (2:32)
Lines 270 to 360: add LET after THEN
Lines 370 to 440: add GOTO after THEN
O
First Aid
for Your
Keyboard
Cecil Bridges
You have a normal screen and nothing
happens when you punch a key. or you
punch a key and the wrong symbol pops
up. Your problem may be caused by
keyboard switches that are permanently
closed. Look at the keyboard at an angle
against a light. If some or all the keys
seem to be quite dented in. they may be
pressing down against the contacts on the
printed circuit board without releasing.
The ZX80 keyboard is prone to this
problem because of the way it works: a
sheet of aluminum foil is dented in and
pressed against contacts on the printed
circuit board when a key is pressed. The
vinyl-aluminum sandwich that is the key-
board does not have enough sufficient
elasticity to pop back, and the key acts as
if it were permanently pressed down.
Short of replacing it, the following
procedure may rejuvenate your little
machine. Take the case apart enough to
clear the edges of the keyboard, and gently
peel the sticky aluminum foil and vinyl
keyboard off the sticky surface. Do not
lay the sticky foil keyboard on any surface
on which it would pick up anything. Do
not fold the keyboard. Do not smear the
gooey stickum on the clear spaces on the
foil under the keys. If you managed this
successfully. lay the foil keyboard right
back down in the same position from which
you removed it. pressing gently to re-
stick. Peeling up the keyboard may
straighten out the dents somewhat. or
release air trapped between the two sticky
surfaces. so that the abnormally closed
contacts are now again open. If yours is
like my MicroAce. it will now work like
gangbusters. O
Cecil Bridges. 1248 N. Denver. Tulsa. OK 74106.
3
ZX81 Announced in Great Britain
Sinclair Research is now advertising the
new ZX81 computer in British computer
magazines. An improved version of the
ZX80 computer, the ZX81 has been
redesigned to incorporate a number of
new features. The ZX80 reduced the
number of integrated circuits to 21, but
the ZX81 further reduces the number of
chips to four by using a new custom-built
chip that replaces 18 others. The 8k Basic
ROM chip (now also available for the
ZX80 as a drop-in replacement) gives the
user the capacity to use decimals with 8
place accuracy, to work with log and trig
functions (with their inverses), to plot
graphs, and to make animated displays. A
new 40 key keyboard expands the number
of key words that can be entered by one
key stroke, e.g., PEEK, POKE, SCROLL.
This eliminates typing out these words.
“ZX-80 BASIC” A complete disassembled, annotated listing of the Sinclair 4K
Basic, with Cross reference table. Discover how and why Your ZX-80 works.
PROGRAMS supplied on Cassette.
E1.01 - LCM 4 HCF, Prime factors, Statistics, Bar-chart plotter 1K
U1.01 - Line renumberer, Stopwatch, LEN( $) 1K
M1.01 - Day finder, Sequence guesser, Scetcher 1K
M2.02 - LIFE: 1/7 second per generation, with demo program 2K
G1.01 - Hangman, Matchstick game, Battleships, Hi-low 1K
G3.03 - Zombies, Sink the sub, Nim 3K
G4.04 - STARTREK: All the features of most larger games 4K
G4.04 - Sword of peace: Dungeons & Dragons type game 4K
(ALL PRICES INCLUDE POSTAGE & PACKING) For free catalogue send SAE or 1$ to:
ARTIC COMPUTING
396, James Reckitt Avenue, Hull, N.Humberside, HU8 OJA, England
TO ORDER MAKE CHEQUES, P.O. Payable to
ARTIC COMPUTING.
Twenty new graphics characters and 54
inverse video characters increase the
graphics capabilities. Users have the choice
of two speed modes: “slow” and “fast”
which is four times the “slow” mode and
comparable to other personal computers.
The slow mode eliminates screen flicker.
Although the 1K RAM is the same as for
the ZX80, it can be expanded by plugging
in the new 16K memory unit. (So can the
Z X80.)
The ZX81 will sell in Great Britain for
£69.95, but it will not be available in the
U.S. for the foreseeable future. Even if
we colonials fly to Britain to buy it, the
British version will not work with an
American TV set. However, ZX80 users
can have most of the capabilities (excluding
the animated display) if they upgrade to
the new 8K Basic ROM which is now
available in the U.S. for $39.95 plus shipping
from Sinclair Research (see Resources
Column).
Sinclair has also announced that a 32
column printer will be available in the
summer of 1981 for about £50. This will
work with the 8K ROM machines.
HINTS & TIPS
FOR THE
ZX80
This super book on the ZX80/Micro-
Ace includes chapters on Saving
Space, Machine Code Subroutines
(including PAUSE and ACTIVE DIS-
PLAY). Learn how to protect variables
and how to CLEAR them one by one.
48 close-printed pages packed with
routines and programs - £4.25
BUMPER BUNDLE - 14 programs on
cassette for the 1K ZX80/MicroAce
including several with ACTIVE DIS-
PLAYs. Normal price £12.25, SPE-
CIAL OFFER £6.75 only for orders
received by 31 May 1981.
All price include p&p
Send SAE for full catalogue
Hewson Consultants
7 Grahame Close Blewbury Oxon
0x11 9QE UK
Tel 0235 850075
Dealer enquiries welcome
SYNC Magazine
Software Review...
Unfriendly Skies
David Lubar
A cult has grown around the game of
Space Invaders. Individuals with glazed
eyes and pockets full of quarters have
been known to haunt arcades for hours,
sending countless rows of aliens to a laser
death. Now, Sinclair owners can experience
the same mania in their own homes. Using
an active display to produce true animation,
Softsync has given us Super ZX80 Invasion
for the Sinclair. The tape comes with
both 1K and 2K versions of the game.
Let’s start with the 1K program.
The player has a ship (or laser base,
depending on your interpretation) at the
bottom of the screen. The ship can be
moved left or right using the arrow keys.
The 0 or 9 key is used for shooting. Above
the player, rows of aliens rain down missiles.
The aliens move slowly across the screen,
and the entire group moves closer to the
player on each pass. If you shoot them all
before being hit five times, you are
rewarded with another screenful of aliens.
That's basically it. The 1K version doesn’t
keep score, so you have to remember
how many frames of aliens you have
destroyed. Your ship contains a number
telling you how many ships are left. When
the number reaches zero, the game starts
over. There are three skill levels available
in the 1K version.
The program is fast, which introduces
a problem. You have no chance to get
set. As soon as it starts, the aliens are
shooting at you. You can lose two or
three ships before even touching a key.
When your last ship is destroyed, there is
no pause. The game starts again. If you
are down to one ship and one alien, it can
be hard to tell who hit who.
The 2K version does keep track of the
number of frames completed. It also allows
for fifty different skill levels, more aliens,
and extended play for each frame com-
pleted. Unfortunately, there is no way to
stop the game and change skill levels.
Once it is running, you can only stop it by
pulling the plug. To go to a different skill
level, you have to reload the tape.
Despite these problems, the game is
fun, assuming you aren’t easily frustrated.
It is probably the best Sinclair game to hit
the market so far. The programmers have
to be congratulated for putting so much
into 1K of space. O
AND MORE!
May/June 1981
JUST POP IN THE CASSETTE AND PLAY!
(REQUIRES 4K BASIC & 1K MEMORY OR MORE).
ALSO: OLD *1
FAMILIAR OLD PROGRAMS LIKE DICE THROW,
MULTIPLICATION TABLES, AND ALSO MANY NEW,
LIKE AUTO-PLOT (GRAPHS YOUR EQUATIONS,
COMPLETE WITH LABELED AXES). ELECTRIC
NOTEPAD LETS YOU CREATE PHONE LISTS, ETC..
GAMES, PUZZLES, TEN PROGRAMS IN ALL.
ALL ON ONE CASSETTE, YOUR CHANCE TO
TRY OUR SOFTWARE. JUST $2.99!
AAA a
CHEST OF CLASSICS [Es
FOUR CLASSIC COMPUTER GAMES xo
FOR THE ZX80 AND MICROACE.
LUNAR LANDER
MINDMASTER
ALL FOUR GAMES ON ONE CASSETTE, WITH
GAME MANUAL, CHARTS, COLOR KEYBOARD
OVERLAYS, COMPLETE LISTING IN BASIC,
LAMO-LEM LABS
CODE 203, BOX 2382, LA JOLLA, CA 92038
SOTA Sf (( A
PALA LIA
RIES KIA
WON
SS
Z SSS PL, AA
K-TREK
LIFE
$ 0.9
FREE:
WRITE FOR OUR
FREE CATALOG &
RECEIVE ZX80 &
MICROACE CODING
SHEETS.
Handling Character Strings
in the ZX80
Hasse Taube
From the first day I tried to operate my
new ZX80. I have been looking for a way
to simulate some of the character-string
operations possible in other programming
languages. but not in the ZX80 Basic. An
idea mentioned by Michael Kirkland in
Personal Computer World. February. 1981.
on using USR(47) to obtain the address of
the end of the variables provided me with
the key to start my programming tricks in
the ZX80.
Consider the following piece of code:
100 LET A$=“ABCDEFGHIJKLMNOPQ”
200 LET A=USR(47)
Then A is the address of the byte after
the last“.
Consider also:
100 LET A$=“ABCDEFGHIJKLMNOPQ”
200 LET A=USR(47)-2
A will contain the address of the last byte
of the previous character string; in this
case. A will be the address of the letter Q.
In order to use this facility. you should
not have any other statements between
100 and 200 in the examples mentioned
above. To test this on your ZX80. enter
the following short program:
100 LET A$="ABCDEFG”
200 LET A=USR(47)
300 PRINT CHR$ (PEEK(A))
This should give the letter G as output.
i.e.. the last character in a character string
AS.
You know. of course, that you can always
get the first character in a character string
by a piece of code like this:
100 LET AS="ABCDEFGHIJ"
200 LET BS=CHRS(CODE(AS))
Then the variable BS will get the value A.
i.e.. the first character of the character
string AS.
Hasse Taube, Ericavej 39, DK 2820 Gentofte.
Danmark.
It is. however. not so easy to get the
last—or in fact any other than the first
character. This is now possible with the
use of the technique just described.
Suppose you want the last character of
a string variable after a value has been
assigned to it by an INPUT:
100 INPUT A$
200 LET A=USR(47)-2
300 PRINT CHRS(PEEK(A))
If you run this program and input. say.
QWERTY. the output should be Y.
In other words, if you use:
(line number) LET A=USR(47)-2
immediately after an assignment of a string
variable by a LET-statement or by an
INPUT -statement. the variable A will point
to the last character in the string.
If you know the length of the string. it
Is easy to take a substring from it. Suppose
you know that the length of the string is 5
as in the following example:
100 LET AS="ABCDE”
200 LET A=USR(47)
300 LET BS="XX"
400 LET B=USR(47)
500 POKE B-2.PEEK(A-5)
600 POKE B-3.PEEK(A-6)
700 PRINT BS
Then the output will be AB. i.e.. the first
two characters from the string A$.
By using the example above with other
values in statements 500 and 600. you
could. of course. get another substring
from AS. Also, if you would like to take a
larger substring than just two characters
as in the example. you probably would
set up for a FOR... NEXT loop to do the
POKE's and PEEK’s.
Suppose you do not know the length
of the string variable from which you
want to take. say. the second and third
characters. How can you find the length
of a string variable? Several methods are
available. The first uses the TL$ in a loop
like this:
100 INPUT AS
200 LET BS=AS
300 FOR I = 1 TO 1000
400 LET A$ = TLS(AS)
500 IF AS = “`` THEN GO TO 1000
600 NEXT I
1000 LET AS=BS
1100 PRINT I
Then the output-value will be the length
of the string which you input.
A much more interesting method for
finding the length of a string also gives
you the address of the beginning of the
string. In this second method strings are
internally stored in the ZX80 as follows:
— One byte with a code for the name of
the string;
— The string itself from first character
to last character;
— The ending quote.
The first byte contains a value which is
equal to decimal 96 plus the code for a
letter and which names the string. For
example, a string named A$ will have
96+ 38= 134 (decimal) in the first byte. A
string named ZS will have 96+63=159
(decimal) in the first byte. To understand
these examples. you must know that the
ZX80 representation for A is 38 and Z is
63. (See your instruction manual for the
Z X80.)
To find the address of the first byte of
the string in a string variable. you must
set up a loop to test for the value in the
first byte. described above. Assuming you
know the address of the byte after the
ending quote from USR(47). this should
be fairly simple:
100 INPUT AS
200 LET A=USR(47)
300 FOR I=0 TO 1000
400 LET J=A-2-]
500 IF PEEK(J)=134 THEN GO TO
1000
600 NEXT I
1000 PRINT I
The program above will print out the
length of the string which you input. but
more interestingly. after statement 1000.
J will point to the first byte of AS. and
J+1 will point to the first byte in the
string itself. O
SYNC Magazine
More Truth in Programming
David Lubar
The other day. while blithely working
on a program, I discovered that something
was amiss. I had made an assumption
about a certain Boolean operator, and
passed on the information without checking
my assumption. As Murphy’s law would
have it, the assumption was wrong. Going
back to the article in issue two of SYNC,
there is a discussion of various tricks with
logical operators. For example, to test
whether a number is not zero. you could
use the following program.
10 INPUT N
20 IF N THEN PRINT “NOT ZERO”
There is no problem here. The expres-
sion will only be true if N has a value
other than zero. I had assumed that the
converse was also true. believing expres-
sions such as
IF NOT N THEN PRINT “THE NUM-
BER IS ZERO”
would also work. To put it bluntly, they
don't. The reason for this is that NOT can
function in two different ways (actually.
it always functions in the same way. but
has two different applications). When
working only with true and false (values
of -1 and 0), NOT will always make a true
expression false, and make a false expres-
sion true. So far. so good. As long as the
universe is restricted to the values 0 and
-1, there is no problem.
Before going on. try the following on
your computer. Ask it to PRINT NOT
(0). Then ask it to PRINT NOT (-1). As
you can see, this works in the expected
manner. Now try PRINT NOT (5). You
might expect an answer of 0. since 5 (or
any number other than zero) is considered
to be true when evaluated logically. But
life is not that simple. What NOT actually
does is to take each bit in the byte and
change it. Ones becomes zeroes, zeroes
become ones. Now, if you've been trying
all this. you'll have found that any positive
number N. when used in PRINT NOT(N)
will produce a negative number. This has
to do with the way the Sinclair stores
numbers. In positive numbers, the highest
bit is set to zero. In negative numbers.
this bit is set to one. Since NOT changes
each bit, it will change the sign of most
numbers.
You've probably also noticed that
PRINT NOT (5) does not produce -5.
This, also, is tied in with the way numbers
are stored in the Sinclair, and will be
discussed in a later issue.
By now, it should be obvious that you
can't test for zero with IF NOT (N) THEN
PRINT “THE NUMBER IS ZERO”. If N
is 0. NOT (N) will produce a value of -1,
making the expression true. In this case,
that is what we want. When N is zero, the
expression will be true. and the statement
“THE NUMBER IS ZERO” will be printed.
And if N is -1, there is still no problem,
since NOT (-1) will produce 0. making
the expression false. But if N is any other
number, NOT (N). as we've seen. will
return a value other than zero or minus
one. And. when evaluating the IF... THEN
statement, the Sinclair will consider any
value other than zero to be true. So IF
NOT (N) THEN PRINT “THE NUMBER
IS ZERO”, will end up printing the message
for any value of N other than minus one.
To sum it up, as long as an expression
produces only logical values (0 or -1). you
can safely use NOT. Expressions such as
IF NOT (A=B) THEN GO TO 10. or IF
NOT (X 5 AND Y 8) THEN GO TO
10 are fine. They only deal with logical
operators. The value inside the parentheses
will be either zero or minus one. But if
other integers enter the expression, it’s
not safe to use NOT. O
KNOW YOUR ZX80
With LINSAC products for the Sinclair ZX80
THE ZX80
COMPANION
postage.
(SECOND EDITION) Appl
LINSAC
The ZX80 Monitor A complete assembly language listing of the ZX80’s 4K Monitor,
with annotations. Available as a clear typeset booklet from 16th March, price £5.95.
Cassette Software
All LINSAC program packs are on single C12 cassettes with printed run instructions. All run on 1K ZX80's unless otherwise
stated. Price £7.95 per pack incl. UK postage.
GAMES PACK 1 -
GAMES PACK 2
GAMES PACK 3 _ (2K+) — Fruit Machine, Four-in-a-line, Zombies.
GAMES PACK 4 -
EDUCATION PACK 1 —
EDUCATION PACK 2 —
EDUCATION PACK 3 —
UTILITY PACK 1 -
THE ZX80 COMPANION
(Second Edition)
Maunder, Logan and Trotter
ISBN 0 907211 00 3. Price £7.95 incl. UK
This best-selling manual on the Sinclair ZX80
covers ZX80 BASIC, hardware and programs
and has a detailed explanation of the ZX80
Monitor, routines and entry points. A routine e
for generating moving displays is also included.
Ch.1 — Operating the ZX80.
Ch.2 — Theory of Computers
Ch.3 — ZX80 BASIC
Ch.4 — The ZX80 Monitor
Ch.5 — Construction and Hardware
Ch.6 - 2X80 Programs En
— Comparison of Z-80 Opcodes and = .
ZX80 Characters. e y s
App.2 — The 8K ROM.
For a cassette of ten programs from the Com-
panion add £4.95.
Three Towers, Number Guessing, Mastermind, Sketcher, Hurkle, Nim, Symbol Simon.
_ Nine Lives, The Maze Game, Plain Sailing, OXO, Chinese Puzzle, Tower of Hanoi, Battleships.
Destination Venus, 3D Noughts & Crosses, Anagrams, Interaction,
Maths Drill, Dot Recognition, Musica! Notes, Spelling Quiz, Day Finder.
Graph Plotter, Prime Factors, Number Bases, Bar Charts, Statistics.
Memory Display, Hex Code Monitor, Renumber, Memory Search.
Plans for ke
$10.00 .«
(2K+) — Computer-Assisted Learning Quiz Package with three sample data sets.
LINSAC 68 Barker Road, Linthorpe,
Middlesbrough, Co.Cleveland TS5 5ES
May/June 1981
board con
NOW AVAILABLE
Sion
Standard Compute
ersion with reverse video
Keyboard with complete parts and plans $65.00
Wired keyboard, complete with plans $85.00
Mail for information:
L.J.H. Enterprises
P.O. Box 6273, Orange, CA 92667
For information or Visa or MasterCard orders call
(714) 772-1595. Shipping charge for U.S.— $5.00.
JOFTWARE
Jil GdSSe
BUMPAPAK-25
25 programs for the unexpanded ZX80 on 3
cassettes. These are made up from the
best of our cassettes 1 - 8, and include UK
biorhythms , moon-landing, hangman,ZX80 art,
Stopwatch,treasure hunt,battleships and £12
many others complete with instructions.
Purchased together in this way, US
they represent incredible value, B29
and an enormous Saving.
EDUCATIONAL
FRENCH VOCAB This program requires 16K UK
and contains 200 French words with their £8 ~ 50
translations. Reference & testing modes US
in both directions(F-E & E-F) 419
MULTIPLE CHOICE Allows you to enter any
Set of up to 25 multiple choice cuestions UK
and performs testing, marking & correct-
ing. By SAVEing the complete program, a Sf ( 59
large number of tests may be derived from US
this program - very easy to use.16K 217
JUNIOR MATES 5-12 yrs. Tables, division,
aadition & subtraction, or a mixture may UK
be tested in this self-contained, easy to E? . 50
use program. Variety of question types,
age-dependent timing, scoring etc. 6K US 217
Programming
Course Second edition
The course consists of a book and a cassette of programs, and has been
designed to supplement the Sinclair manual. It is assumed that this has
already been studied, and that the reader is capable of constructing very
elementary programs. In our book, the ZX80's BASIC is explained in more
detail, with special attention being given to those aspects likely to cause
difficulty, for example, the use of PEEK and POKE and the USR function.
An introduction to machine code is given, removing some of the mystery which
Surrounds this subject, and there is also a section explaining the workings
of the Z80 microprocessor.
The accompanying cassette contains ready to run programs, which are
dealt with in the text, which also includes many other useful programming
examples, The emphasis is on understanding, and the course should give you
the confidence to construct your own involved programs, thereby getting the
most out of your ZX80.
251 HENLEY ROAD
COVENTRY CU2 IBM
ENGLAN
Black Hole Bil Eckel
Black Hole is a game based on a machine language program
on my Elf If which uses the RCA 1802 Microprocessor. I
understand it was originally called “Teaser.” The challenge
of rewriting it in Basic for the small memory could not be
resisted. The program takes a little over 1K of memory.
Black Hole
You are in space looking at your computer screen which
shows a star surrounded by black holes.
000
0 * 0
000
To escape you must get the pattern to be a black hole sur-
rounded by stars.
x kK k
k O *
x“ xk x
You can only fire at stars. The stars explode. leaving a
black hole. but they also produce new stars in other locations.
What the galaxy will look like after you fire at a star is
important.
l x x 2 x x3 «x x x
x x xx & x 5 x 6 XX
x x x x x 8 x
x x
x 9
The number is the star fired upon. The x's are the holes
changed to stars or stars changed to holes (the reverse of
what they used to be). The .’s are the star or holes that are
unaffected.
For convenience sake the computer displays the star numbers
in a block next to the galaxy pattern. Examples are:
000 1 2 3 0 * O L 2 3
kee Shoot Star 5 kgk 456
will result in
000 789 this O * 0 789
Do not end with all black holes or you will be lost in space
forever!
000
000
000
The lowest possible number of turns to solve the problem is
eleven. There are many ways to solve it; here are two:
5.2.8.1.7.3.5.9.2.8.5
3.2.1.3.6.7.5.2.9.8.5
You cannot read the program listing and figure out how to
solve it. It is very challenging game which will give hours of
fascinating fun.
Bill Eckel, 7336 South 71st Ave., Omaha, NB 68157.
SYNC Magazine
5 REM BLACK HOLE WRITTEN BY BILL ECKEL APRIL
2. 1981
10 DIM X(9)
14FORI=1TO9
16 LET X(I) = 0
18 NEXT I
20 LET X(5) = 1
25 CLS
30 PRINT. “ BLACK HOLE”
32 PRINT
34 PRINT
35 LETI=1
40 PRINT .:
42 FORA = 1 TO3 640 RETURN 980 IF X(B) = 0 THEN GOTO 986
44 IF X(I) = 1 THEN PRINT “‘*”: 700 LET B = 4 983 IF X(B) = 1 THEN X(B) = 0
46 IF X(I) = 0 THEN PRINT “O”: 710 GOSUB 980 984 RETURN
48LETI=1+ 1 720 LET B = 5 986 LET X(B) = 1
49 PRINT “>; 730 GOSUB 980 990 RETURN
50 NEXT A 740 LETB =8 1000 FORI=1TO9
52 PRINT 3 1-3; * "1-2," 1-1 750 GOSUB 980 1010 IF X(I) = 1 THEN GOTO 1050
53 PRINT 760 RETURN 1020 NEXT I
54 IF NOT I = 10 THEN GOTO 40 800 LET B =7 1025 PRINT “YOU BLEW IT”
56 PRINT 810 GOSUB 980 1030 PRINT “YOU ARE LOST IN SPACE FOREVER"
58 PRINT 820 LET B = 9 1040 STOP
60 GOSUB 1000 830 GOSUB 980 1050 IF X(5) = 1 THEN RETURN
65 PRINT “WHICH STAR?” 840 RETURN 1060 FORI=1TO4
70 INPUT S 900 LET B = 5 1070 IF X(I) = 0 THEN RETURN
75IFS 1ORS 9THEN GOTO 70 910 GOSUB 980 1080 NEXT I
78 IF X(S) = 0 THEN GOTO 70 920 LET B = 6 1090 FORI=6TO9
85 LET X(S) =0 930 GOSUB 980 1100 IF X(I) = 0 THEN RETURN
90 GOSUB S * 100 940 LET B = 8 1110 NEXT I
95 GOTO 25 950 GOSUB 980 1120 PRINT “CONGRATULATIONS”
100 LET B =2 960 RETURN 1130 PRINT “YOU FOUND THE BLACK HOLE”
110 GOSUB 980 1140 STOP
120 LET B = 4
130 GOSUB 980 eee —- .Oo —— 1.
140 LET B = 5
150 GOSUB 980 SAMPLE and
160 RETURN ———— ere
200 LET B = 1
210 GOSUB 980
220 LET B = 3
230 GOSUB 980 A EA
240 RETURN 000 12 3
300 LET B = 2 0* O 45 6
310 GOSUB 980
320 LET B = 5 uh a oe
330 GOSUB 980 WHICH STAR?
340 LET B = 6 5
350 GOSUB 980
360 RETURN OO u ua AAA
400 LET B = 1
410 GOSUB 980 BLACK HOLE
420 LET B = 7 0 * O 123
430 GOSUB 980 I
440 RETURN =O oa
500 LET B = 2 0x0 789
510 GOSUB 980 WHICH STAR?
520 LET B = 4 2
530 GOSUB 980
540 LET B = 6 —m o IsyT s rÁ, OO.
550 GOSUB 980
560 LET B = 8 BLACK HOLE
570 GOSUB 980 a
580 RETURN os 123
600 LET B = 3 * O x 45 6
610 GOSUB 980 ee te
620 LET B =9
WHICH STAR?
630 GOSUB 980
Seer
May/June 1981
NEW ENGLAND
SOFTWARE
7 GAMES FOR THE zx80
AND MICROACE ONCASSETTE
MASTERMIND
DOUBLEMIND
SLOT MACHINE
CRAPS
TIC TAC TOE
SUB RESCUE
WHITE HOT NUMBER
ALL RUN IN1K RAM
New England Sofiware
Bex 691
Hyannis, MA, 02601
$ 1 1.00 ORDERS MAILED
First Class (U.S.A.
£ 6.00 Air Mail (England)
OUR BEST VALUE IN
QUALITY SOFTWARE
CAMES
* * * FOR THE 1K AND 2K ZX-80, MICROACE * * *
CASSETTE ¿ 11
e SLOT MACHINE - BRING PLENTY OF MONEY
e ROBOT FIGHT - WHOs THE FASTEST LASER
e CORPORATION - CAN YOU KEEP A COMPANY AFLOAT
e TANK BATTLE - TANK AGAINST TANK ON A MINE FIELD
CASSETTE &
e LUCKY LINDY - MAKE IT ACROSS THE ATLANTIC
e CROP DUSTER - SPRAY A FIELD FROM TWO FEET
e NUKE em - BOMB ENEMY MISSILE SILOS
e CARRIER LANDING - DON'T LAND IN THE DRINK
PHARAGHS TREASURE
EXPLORE THE PHARAOHS PYRAMID FOR TREASURE
TRAVERSE THE INTRICATE MAZE SEARCHING 1K
FOR ANCIENT TREASURE. BEWARE THE
PHARAOHS CURSE THAT NO ONE SHALL
COME OUT ALIVE !
EACH CASSETTE $10.00
Tensor
(Technology ©
P.0. BOX 17868
IRVINE,CA 92713 (714) 770-8239
SEND FOR UUR FREE BROCHURE
CALIF, RESIDENTS ADD 6% SALES TAX
FOREIGN ORDERS:
- ADD $2.00 FOR SHIPPING
- SEND U.S, FUNDS FOR PROMPT SERVICE
10
In our first issue we challenged our readers to fit the Ham-
murabi game from Creative Computing’s Basic Computer
Games into the 1K memory of the ZX80. A number of
readers took us up on the challenge and submitted their
entries. The results are as follows:
First place
(a one year subscription to SYNC and a
SYNC T shirt):
Michael Hodgkins
46 Broadway
Duffield
Nr. Derby
DE6 4BU
England
Second place
(a one year subscription to SYNC):
Un Jung Kang
1620 McElderry St. 12D-4
Baltimore, MD 21205
Third place
(a SYNC T shirt):
Ken Berggren
104 Ridgeway Ave.
Louisville, K Y 40207
Honorable mentions
Dennis A. Adcock
9516 - 76 Street
Edmonton, Alberta
T6C 2K9
Canada
Lester S. Cottrell. Jr.
108 River Heights Drive
Cocoa. FL 32922
Bob Ferguson
19 Farrington Ave.
Allston. MA 02134
John P. Filley
1501 Murfreesboro Rd.
Nashville. TN 37217
Leonard Gaunt
44 Hartherop Road
Hampton Middlesex TW12 2RP
England
Dennis A. Likens
Box 1125
Tuskegee Institute. AL 36088
lan S. Logan
24, Nurses Lane
Skellingthorpe
Lincoln LN6 OTT
England
Claude Ostyn
Box 2035
Sitka, AK 99835
Robert M. Selz
P.O. Box 24
Pleasant Plains. IL 62677
Harley Shanko
15025 Vanowen. #209
Van Nuys, CA 91405
Ken Stetina
3626 Eastway Drive
Island Lake. IL 60042
Ephraim Vishniac
38 Gorham Street
Arlington, MA 02174
SYNC Magazine
Hammurabi in ik
Michael Hodgkins
g LET Gafa
|
PRINT "WE HAVE "36" BUSHELS"
15 ERINT “POPULATION " A
E PRINT SUA TN OWNS "A" ACRES"
|
SO TE Yell THEN SOTO 250
35 PRINT "LAND PRICE “pp BUSHELS/ACRE”
40 PRIM T "BUY HOW MUCH”
as INEUT E
SO IE Past THEN GOTO Fe
55 LET =+
O LET G=G-FX]
65 GOTO 9
O PRINT ELL HOW MUCH”
S INPUT E
Go LET Fs]
es GOTO ss
QO [UL
23 LET FusRMD CS
LOO LET G=G-
SS PRINT "PEED YOUR "ee! SUEJECTS—-pax "si
!
LO TMPUT É
H
i
hac Je Fee THEN GOTO tin
'
l
tee
210 PRINT RATS ATE
215 LET Yeved
-ge
220 GOTO Lo
PRINT “PLAGUE”
SEQ PRINT E<FEZ2; 9 DIE"
O35 LET Pap yo
240 GOTO 210
24% PRINT "MURDER Es
250 PRINT CEND
To run. press RUN and NEWLINE. Then enter your choices
as called for by the computer.
When you reach “END OF REIGN” and want to start
again. press any key and then press RUN and NEWLINE.
May/June 1981
The game begins by telling the player the state of the
economy he is to manage. The lines of the game function as
follows:
2-8 Set up variables, year, population, acreage. and
grain.
10-20 PRINT information on the screen.
25 Sets random land price.
30 Year counter to check for end of reign.
35-45 PRINTs land price and asks how much the
player wishes to buy.
50 If no land is bought. the program jumps to 70.
55-60 Adjusts acres and grain according to the
transaction.
70-85 Asks how much land the player wants to sell;
then goes to 55 to adjust variables as before.
95-100 Chooses a random number to be used for a
variety of things. First it subtracts the amount of
grain eaten by rats.
105-145 Tells the player to feed subjects; checks that he
| is not feeding them more gram than he has;
works out how many people starved and the
remaining grain. If the number starved is too
large, it jumps to 245.
155-170 Instructions to sow grain, telling player how
much grain may be sown, tended. etc.
175 Checks that he is not cheating.
185 Decides crop to be harvested.
190-210 Gives readout of year’s events.
215 Increments year number by 1.
220 Returns to beginning of new year.
225-240 Plague routine; approximately half the people
die.
245 Prints MURDERER if more than 10 people have
starved.
250 Final statement; game over.
The program uses almost every byte of memory available.
The same variable F is used for all INPUT's to save memory
and also a single random number R is used for the number of
people entering the city. the number of bushels devoured by
rats. and the test for a plague. A plague occurs when R=1,
thus avoiding the complications caused by “1 PEOPLE” entering
the city. O
11
How Is It Done? Aseries of articles
Auto-Display-Changing
Introduction
The standard ZX80 is supplied with a
4K ROM and 1K of memory. There are
22 commands that can be used in the
Basic provided in the 4K ROM. How-
ever, there is no command that will cause
the display to be shown for a specified
length of time before a change is made to
show the next display. The advertise-
ments for the 8K ROM mention a com-
mand called PAUSE which is expected to
perform this function.
The following program constructs the
machine code routine for such a PAUSE
command. The actual program occupies
about 1/4K, leaving the programmer a
little under 3/4K in which he can store
his different displays.
The actual displays are constructed
using Basic PRINT commands in the ver-
sion given here, but there is no reason
why machine code constructed displays
should not be used if greater speed or
complexity is required. (See SYNC, vol.
1, no. 1)
A certain amount of ‘flicker’ is pro-
duced between displays because the rou-
tine ‘returns to Basic’ after the specified
time period. This ‘flicker’ can be elimi-
nated only by remaining in machine code
and synchronizing the program perfectly.
The Theory
The Screen and Keyboard routine,
decimal address 316-437, Hex. address
013C-01B5, in the 4K monitor program
Dr. I. S. Logan, 24 Nurses Lane, Skellingthorpe,
Lincoln LN6 OTT England. This article is the
second in a series.
12
Dr. I. S. Logan
can be considered the dominant routine
in the operation of the ZX80.
It is this routine that both reads the
Keyboard and produces the display on
the TV screen. It therefore follows that
this routine cannot be called unless a
complete display file has already been
constructed.
The routine can be divided into three
parts:
Part 1. Update the frame counter.
Part 2. Test the Keyboard for new
input.
Part 3. Produce the display of the cur-
rent display file.
COMPLETE A
DISPLAY FILE
SCREEN &
KEYBOARD
ROUTINE
PRODUCE
DISPLAY
ISA
KEY BEING
NO PRESSED?
INITIALISE
If there is no key being pressed, then
the whole routine is executed over and
over again. However, if a key is being
pressed, then an exit is made from the
routine to handle the ‘interruption.’ This
may lead to the cursor being moved,
characters being added to the current E-
line, or the RUNning of a Basic program.
As long as the programmer has not cre-
ated a ‘never ending loop,’ the Screen
and Keyboard routine will eventually be
re-entered and a display will again appear
on the TV screen.
The flow diagram below illustrates the
normal operation of the ZX80.
— — — n[ — A.” .° —.—
ACT ON KEY
e.g.. Move cursor. |
build up E-line.
| RUN BASIC. |
UPDATE FRAME
COUNTER
SYNC Magazine
The AUTO-DISPLAY-CHANGING
program copies most of the Screen and
Keyboard routine from the 4K monitor
program into the memory and adds a
timing loop so that the display can be
held for up to 256 frames, about 5 sec-
onds. The programmer is then able to use
this ‘new’ routine to produce a display on
The Program
The program, although fairly simple, is
quite difficult to enter. Therefore do it
slowly and carefully. SAVE the partly
entered program often.
Step 1
Enter the following lines and then SAVE:
2 REM 12345678901234567890123456789
01234567890 1234567890 12345678901 234
56789012345678901234567890 123456789
01234567890123456789012345678901234
4 GO TO 28
6 LET A=USR(16428)
8 CLS
Reserve 134 locations.
Do not use all spaces!
A will return the Keyboard codes.
the TV screen.
It is important to emphasize again that
a complete display file of 24 lines must be
constructed before the routine is called.
In the following program the display file
is completed by calling the subroutine at
line 16. However, this can also be done in
machine code if required.
The following flow diagram shows how
the ZX80 operates with the new” rou-
tine:
From now on NEVER use LIST or HOME.
The magazine for Sinclair ZX80 users
Bi
A
$
©
ACT ON KEY RUN BASIC
Es SNA PROGRAM
RUN BASIC
INITIALIZE
| TIMER
—> — |
CONSTRUCT
DISPLA Y
|
| IN BASIC
|
NO COMPLETE
DISPLA Y
— ds
YES cm
ANOTHER
DISPLAY?
‘NEW
SCREEN
— W; ë
k —
—
T-SHIRTS!
Proclaim the computer of your choice on your
chest with our own Crash Cursor and Sync.
Design is white on dark blue shirt for a striking
effect. Available in adult S,M,L and XL. $6.00
postpaid in U.S.A.; 3.00 postpaid in U.K. Send
U.S. orders to SYNC, 39 East Hanover Ave.,
Morris Plains, NJ 07950. Send U.K. orders to
SYNC, 27 Andrew Close, Stoke Golding,
Nuneaton CV13 6EL.
PRODUCE
DISPLAY
DECREASE
&
KEYBOARD ROUTINE TIMER
NO
ISA
KEY BEING
PRESSED?
IS
TIMER
AT ZERO?
YES
May/June 1981 13
Step 2
Make the following check:
Enter as a direct command:
PRINT PEEK(64*256+199) & NEW-
LINE and the value 118 should appear.
(This is the ‘end of line marker’ for line 6
and the correct address must be known.)
Now enter RUN 10 & NEWLINE. The
screen will now display the machine code
that has been entered into line 2 and held
off the screen.
The correct CHECKSUM is 14421; cor-
rect any errors before proceeding.
Step 4
Delete all the lines from 10 to 80 (inclu-
sive) by entering the line number and
NEWLINE over and over again.
SAVE the program. It should consist
of lines 4-8 on the screen and line 2. off
the screen.
Step 3
Enter the following lines and then SAVE.
10 LET A=16428
12 POKE A.205
14 POKE A+1.59
16 POKE A+2.64
18 POKE A+3.33
20 POKE A+4.199
22 POKE A+5.64
24 POKE A +6.34
26 POKE A+7.38
28 POKE A+8.64
30 POKE A+9.96
32 POKE A+10,105
34 POKE A+11.201
36 POKE A+12,205
38 POKE A+13.173
40 POKE A+14.1
42 POKE A+15.58
44 POKE A+ 16,43
46 POKE A+17,64
48 POKE A+18.61
50 POKE A+19.200
52 POKE A+20.50
54 POKE A+21.43
56 POKE A +22.64
58 FOR I=319 TO 427
60 POKE 16132+1.PEEK(I)
62 NEXT I
64 POKE A+24.4
66 POKE A+132,135
68 LET T=0
70 FOR I=A TO A+132
72 PRINT PEEK (I);
74 LET T=T+PEEK(1)
76 NEXT I
78 PRINT
80 PRINT “CHECKSUM = `;T
SAVE.
Step 5
Eniter the rest of the Basic program:
10 POKE 16427,255
12 POKE 16421.24
14 RETURN
16 LET A=PEEK(16421)-1
18 IF A=0 THEN RETURN
20 FOR A=1 TOA
22 PRINT
24 NEXT A
26 RETURN
28 GO SUB 8
30 REM AUTO-DISPLA Y-CHANGING
The program is now complete. so SAVE
this version carefully. Remember. never
use LIST or HOME.
— n | ZN MM cm Oe ee ——r- ——ə.. —N —. — h — = —— -— ——— —oS—Szss—-Fr
Call the routine at line 42
The address of the end of line 6
The return address needs to be stored in
System Variable 16422 and 16423
Return Keyboard codes in HL register
pair.
Call screen production subroutine.
Fetch timer from 16427.
Decrement timer.
Exit if timer Is zero.
Restore timer.
Copy most of Screen and Keyboard rou-
tine from monitor to the memory.
Adjust timing slightly.
Change a JR value.
Form a CHECKSUM
Initialize timer to 5 seconds.
Create a 24th line so as to give a
‘full display.’
This routine will complete the display
file. It adds the appropriate number of
PRINT’s to fill the 24 lines.
Initialize timer for Ist display.
Optional REM line.
SYNC Magazine
Using the program
It is not really the author's intention in
this article to describe at any great length
just how the program can be used. The
following examples are given so that the
reader can start to see for himself how
different problems are tackled.
Simple display changing
Enter the lines;
100 PRINT “DISPLAY ONE”
196 GO SUB 16
198 GO SUB 6
200 PRINT “DISPLAY TWO”
296 GO SUB 16
298 GO SUB 6
300 GO TO 100
996 CLS
998 STOP
RUN
As long as the program is entered cor-
rectly, the first display should appear on
the screen for five seconds. Then the
screen will ‘flicker’ and the second dis-
play will appear. Because of the LOOP
BACK the displays will alternate forever!
Note that all the keys are active. Press-
ing any key. except BREAK. will cause a
switch to the next display. The BREAK
key is still active as it is tested at the end
of each Basic line. This key can therefore
be used to ‘exit’ from the LOOP.
The largest possible display
The following lines show that there are
about 550 locations still available for the
displays in the standard 1K ZX80.
100 FOR I=1 TO 550
102 PRINT “*”;
104 NEXT I
106 PRINT
196 GO SUB 16
198 GO SUB 6
200 GO TO 198
996 CLS
998 STOP
In the above program the LOOP
BACK is used in a different way. By
repeating line 198 over and over again.
the current display file is used again with-
Out any changes.
May/June 1981
— —— —— —
A very simple 1 line display.
Complete display file.
Produce the display.
Another simple display.
Complete the 2nd display.
Produce the display.
LOOP BACK
Display is to have 550 *s,
Always go to the next line.
Complete display.
Produce display.
LOOP BACK.
Find the number
The following game shows how the A
variable returns the keyboard code.
In the program a random number in
the range 1-5 is the first generated. Then
the keys that are pressed by the player
are tested for the correct key value.
Each time a key is pressed the score is
incremented. At the end of each 5 sec-
ond period without a key stroke the score
is also incremented.
100 REM FIND THE NUMBER
102 LET N=RND(5)
104 LET N=521*(N=1) OR 1033*(N=
2) OR 2057*(N=3) OR 4105*(N=4) 0
R 8201*(N=5)
106 LET T=]
198 GO TO 204
200 PRINT “SORRY. TRY AGAIN"
202 LET T=T+1
204 PRINT
206 PRINT “I KNOW THE KEY. DO
YOU? (1-5)"
296 GO SUB 16
298 GO SUB 6
300 IF NOT A=N THEN GO TO 200
302 PRINT “WELL DONE”
304 PRINT “YOU TOOK"T:" GO”:
306 IF NOT T=1 THEN PRINT “ES”
308 PRINT
310 PRINT “PRESS NEWLINE TO RES
TART”
312 INPUT A$
314 IF NOT A$="" THEN STOP
316 CLS
318 RUN
The Key values
The Screen and Keyboard routine
scans the keyboard and returns in the BC
register pair a KEY VALUE that is differ-
ent for every stroke. As there are 78 key-
strokes. there are 78 different key values.
In the ‘Build up an E-line’ routine
these key values are changed to the range
I to 78; then the look up table is used to
find the correct ZX80 character codes.
However, in order to make the AUTO-
DISPLAY-CHANGING program as
short as possible. the conversion of key
values to character codes has not been
included.
The following program can be used to
show the KEY VALUES:
100 REM KEY VALUES
102 LET A=0
104 PRINT A
196 GO SUB 16
198 GO SUB 6
200 GO TO 104
Conclusion
Many other kinds of programs can be
written using the AUTO-DISPLAY-
CHANGING routine. The author has a
very nice digital clock. but the ‘flicker’ is
a little annoying. Much of the back-
ground work for this article is discussed
in the authors The ZX80 Companion
which contains a more elementary ver-
sion of this particular program.
15
Looking inside the ZX80
by Harley Shanko
Since the materials supplied with the
ZX80 had no machine language examples,
I decided to write routines to let Basic
show me the ROM contents. These routines
resulted from that effort; later they were
combined to permit switching from one
mode to another.
The object code routine OBJ allowed
me to generate a ‘hand-disassembled’ listing
of the 4K ROM, and SYMB to see the
‘printables’ —this allows locating the Basic
statement look-up table, single key codes
expansion, and the ‘integral function’
expressions. CODE allows a look into the
details of how the Basic lines are stored
(note: constants are stored in decimal
form as entered, unlike some Basic’s) and
permits easy counting of the number of
bytes consumed by each line.
Use of the program is straightforward.
After RUN, the selection is displayed.
The operation and keyboard activity are
as follows:
Enter number (1 to 3) of
desired listing (plus
NEWLINE); the address
is then requested — enter
decimal value of address
beginning.
Hit NEWLINE.
To change selection, hit
any other key (except
SPACE or NEWLINE)
plus NEWLINE to return
to selection mode.
After listing and cursor
returns, hit SPACE then
NEWLINE twice.
Selection:
Continue:
Change:
Exit:
The display is in standard format, with
the address in hex at the left and data
contents to the right. OBJ presents a
cluttered display. Since the program uses
Harley Shanko, 15025 Vanowen, #209, Van Nuys,
CA 91405.
16
about 1/2 K and the displayed information
uses 336 bytes, formatting with spaces
between bytes (hex-pairs) can only be done
by either displaying fewer lines or using
OBJ as a stand-alone program to increase
readability. SYMB is better as it is textual.
Look at ROM beginning at 006C (108
¿ç 2 SSS u A IA e, ers G Aa NENP
Z CU Looking amgide tine š Ç:
ZREO (1%) MEMORY LISTER
10 PRINTO"1=0BJ @=SYMB 3=CODE"
15 REM BY H SHANEO-22FEBG1
20 INPUT 5
22 CLS
24 IF S>3 THEN GO TO 10
26 PRINT "ADDR="
28 INPUT N
BO LET F=Sx100
52 CLS
54 FOR A=1 TO 16
S6 IF S=3 THEN FOR A=1 TO ZO
60 LET X=N
62 GO SUB 80
64 PRINT " ";
66 GO SUB F
68 PRINT
70 NEXT A
72 INFUT N$
74 IF N$="" THEN GO TO 52
75 IF N$=" " THEN STOF
76 GO TO 10
80 PRINT CHR$(X/4096+28)
82 LET X=X- (X/4096) k4096
84 PRINT CHRS(X/256+28) ;
Bå LET X=X-(X/255) #256
88 PRINT CHRS(X/16+28)3
90 LET X=X-(X/16) #16
92 PRINT CHRS(X+28) ;
94 RETURN
75 LET X=PEEE (N)
97 GO TO 88
100 FOR L=1 TO 8
110 GO SUE 95
120 GO TO 250
200 FOR L=1 TO ié
210 LET X=PEEK (N)
220 IF X>127 THEN LET X=X-128
230 IF X<12 OR X63 THEN LET X=0
240 PRINT CHR (xX)
250 LET N=N+1
260 NEXT L
270 RETURN
200 GO SUB 25
210 PRINT, CHRS (PEER (CN) ) š
ZO LET N=HN+2
330 RETURN
Ñ ns
z
$26 e
W
decimal) for the keyboard matrix decoder,
OOBD (189) for the single-key code expan-
sion, OBCO (3008) for the integral function
decoder, or at RAM at 4028 (16424) to
see this program as stored by the ZX80.
Use of CODE at 4028+ details exactly
each byte of the program.
Selection
Test if selection Ok
Enter beginning address now
Set selection GOSUR address
Set #lines to 164
Get address
and display it
Go to selection subroutine
do "CRLF" for each line
until done
Get keyboard entry
test if "continue!
ae "step"
Otherwise is "nen selection"
4—-hex entry for decimal—-hex conv.
calculate next hex digit
achex entry
ehes entry
ilehex entry
Get byte at address
Set for 3 bytes/line
gek byte
and loop until done
Set far 16 char/line
Get byte
remove if “diverted video!
exclude nom-textiual char.
Display char.
Increment address
and loop until done
Get byte at address, display it
do SFACE and display CODE
t
Get next address
SYNC Magazine
A byte-search routine BYT was used
before disassmebling the ROM to locate
data, such as Z80 unconditional CALL,
JumP, RETurn addresses, although it will
search for any byte. Unfortunately, adding
BYT, like most other routines to the
program, will cause OBJ and SYMB
selections to bomb-out with “4” type errors,
not enough memory, before completing
the display. However, CODE and BYT
will still be usable. An alternate solution
is to make a second file by deleting a
selection and its routine and substituting
BYT. To add BYT, follow printout labeled
Figure 1.
Another routine generated was a ZX80
dot-matrix routine DOT to study the
characters at an 8x scale; the characters
are 7 x 6in an 8 x 8 box and DOT forms a
SPACE or inverted one for each dot in
the character. As a fifth selection, modify
the program so that printout will appear
as in Figure 2.
Line 520 displays a ‘period’ for the
character dot location where the dot should
be OFF; this provides a reference for the
character location in the box. For a true
Figure 1.
change 1G add ...4=BYT... to print statement
4 CHANGE ...S923... te ¿..SS%254...
So change saa DTA., CW are BPMs ae
acicl 26 IF 524 THEN GO TO 52
50 FRINT "EYTE=";
40 INFUT E
42 GO SUE 410
400 LET MaN 1 Iner. address
410 IF NOY PEEK iN) =B THEN GO TO 400 Loop until match
420 FE TUN
Figure 2.
chance LO add ...5S°BYT...
24 change sa BEI (or 4 ta 525
ado WOO LET X=FEEK ON) Get byte
310 FOR Lei TO 8 Do 3 dots/iine
320 LET C227 "space"
3530 IF X41206 THEN 50 TO S60 Test ms bit
SAS LET C= 126 Lt ONE, invert
"apace"
60 LET X=x*x2
70 PRINT CHR® (CO) :
NEXT L
LET N=N+1
RETURN
representation, change 520 to LET C=0.
If a 0,1 type (binary) display is desired,
change C=28 at 520 and C=29 at 540.
The ZX80 dot matrix is located at 0E00
Remove mab, if
ONE
Da left shift
Display dat/no dot
Locp until done
Then incr. address
through OFFF; thus to see the characters
enter decimal 3584 (=0E00). Because of
their size, only two characters per display
are possible.
Blank Cassettes
The quality of cassette tape used to
save and load programs is an important
factor in getting the programs to run.
Tape quality for computers is measured
differently from quality for audio tape.
The tape must be capable of sending to
the computer the electronic signals of
the program without transmitting extra-
neous noises that could interfere with the
ability of the computer to load the tape.
Our blank cassettes are tested and
recommended for computer use. C-10
cassette, 5 min. per side, blank label on
each side in a Norelco hard plastic box.
[0010] $1.25 each.
Head Cleaner
After hours of use, the read/write head in
a cassette recorder will pick up minute
particles of tape oxide. This dirt will hardly
be noticable in dictation or music. But it is
very noticable in computer use. One dropped
“bit in 16,000, and the program won't load.
Help keep your recorder in top shape
with our non-abrasive head cleaner. It consists
of 18 inches of stiff cleansing fabric:in a
standard cassette sheii. One 10-second pass
every 40 hours of use will keep your heads
as good as new. [0011] $2.00. Send pay-
ment plus $1.00 Shipping per order to:
Peripherals Plus
39 East Hanover Avenue
Morris Plains, NJ 07950
May/June 1981
Find ZX-80
Owners
Advertise in SYNC, the magazine ex-
clusively dedicated to the Sinclair ZX-80
and The MicroAce. Call or write for de-
tails and a rate card. Let SYNC readers
know who you are.
SYNC
39 E. Hanover Ave.
Morris Plains, New Jersey 07950
R.F. SHIELD
(CUTS DOWN T.V. INTERFERENCE)
For the MICRO-ACE
Easy to install kit with complete instruc-
tions. ZX80 owners! if your shield is
damaged, the kit will work for you.
(Please specify MICRO-ACE or ZX80)
Send $5.00 U.S.A. (£2.5) to:
OUTBOUND ENGINEERING
P. O. Box 218
Chandler, Texas 75758
U. S. A.
Why wait 2 or 3 weeks for your check to
clear? Send Cash or Money Order.
Texas residents add 5% Sales Tax.
INVENTIVE PROGRAMS
FOR THE ZX80 4K ROM/1K RAM
Games, subroutines, and teaching aids in 4 K BASIC
and MACHINE CODE. All listings include statement/
subroutine logic and 8K ROM/16K RAM appendix.
PRICE: $1.00 per program listing
(minimum order 10, plus $2.50 S& H )
PARTIAL LIST * (4K/1K)
* FLIP-A-COIN * TEST PATTERN
* 1 KEY BANDIT * CASSINDEX
* TURRET GUNNER * FOIL FENCING
* 2X80. BASIC TEST * BANG! FOR 1
* BLACKJACK * EASTER DATE
* FIBONACCI SEQUENCE * STATE CAPITALS TEST
* COORD GRAPHICS * MACHINE CODE DISPLAY
* BARRAGE * GUILLOTINE
* ACEY-DUCEY II
* LINE RENUMBER
* KEYBOARD GRAPHICS
* 81 BOXES
TO ORDER
Specify programs wanted and enclose payment.
ZETA SOFTWARE
P.O. BOX 3522
GREENVILLE, S.C. 29608
* Complete list sent with your order, or send SASE
for FREE list and order blank.
17
puzzles % problems
A Building Problem
ur first problem today is an interesting test in construction. In the illustration at the right we
see a triangle that has been constructed using three matchsticks and three balls of clay. In our
puzzle you are given nine matchsticks and as much clay as you need to connect them together
in such a manner as to form seven equilateral triangles. You are not allowed to cross or break
the matchsticks. Merlin will be by shortly to inspect your construction.
The Lucky Number
any persons have what they consider a “lucky” number. Show such a
person the row of figures subjoined — 1, 2, 3, 4, 5, 6,7, 9 (consisting of
the numerals from 1 to 9 inclusively, with the 8 only omitted) — and
inquire what is his lucky or favorite number. He names any number he
pleases from 1 to 9, say 7. You reply that, as he is fond of sevens, he shall have plenty of them, and accordingly proceed
to multiply the series given above by such a number that the resulting product consists of sevens only.
Required, to find for each number that may be selected the multiplier which will produce the above result.
(From Merlin's Puzzler)
The Puffer-Belly Problem
Conrail passenger and freight train out of Hoboken, New Jersey, was heading west towards
Morristown, home of Creative Computing, at a speed of 45 miles per hour. Along the way the train
meets and is passed by a Dover local train heading east at 36 miles per hour. An alert passenger on the
Conrail train, for some reason unknown to us, clocks the Dover train as it passes by him. He finds
that it takes exactly 6 seconds for the Dover train to pass by his window. Using the information
above, can you calculate the length of the Dover train?
A Seven-Letter Charade
Iright, Hermione, let's see what you learned this year at St. Trinian's. From the
four following hints you should be able to deduce the word asked for by this
charade. The numbers refer to positional letters within the word.”
“My 1, 2, 7 is an extreme point.”
“My 3, 4, 5, 7 is what the reader will be when he solves this puzzle.”
“My 5, 2, 3, 1, 4 is in heaven.”
“My 4, 5, 6, 7 is the earth.”
“My whole is a country in Europe.”
The Three Jealous Husbands
hree jealous husbands traveling with their wives find it necessary to cross a
stream in a boat which holds only two persons. Each of the husbands has a
great objection to his wife crossing with either of the other male members of the
party unless he himself is also present.
How is the passage to be arranged?
The Four Jealous Husbands
rithmeticians have racked their brains to devise a means of transit for four husbands and
four wives under the same conditions stated in the previous puzzle, but, with a boat
holding two persons only, the problem is insoluble. If we suppose, however, that the boat
contains three persons, it may be solved.
How is this passage to be arranged?
(The two puzzles above are from Merlin's Puzzler 3)
If you have a favorite puzzle that you would like to share with our readers, thensend italong to Merlin. If
he uses your puzzle, he will send you a copy of one of his famous puzzle and game books. If you can’t wait
that long, then you can buy these books from Creative Computing. Each book, Merlin s Puzzler, Merlin s
Puzzler 2, and Merlin's Puzzler 3, is 128 pages long and a big 8” x 11” in size. There's a world of “puz-
zling” entertainment in these three volumes.
Until next time, Merlin says, “Have a happy 1” You fill in the blank.
>?
Your editor, Charles Barry Townsend ES BTS Z SN
Answers on page 35.
18 | SYNC Magazine
The story behind the two best selling
computer games books in the world.
Computer
Games
by David H. Ahi
Everybody likes games. Children like tic
tac toe. Gamblers like blackjack. Trekkies
like Star Trek. Almost everyone has a favor-
ite game or two.
It Started in 1971
Ten years ago when | was at Digital
Equipment Corp. (DEC), we wanted a pain-
less way to show reluctant educators that
computers weren't scary or difficult to use.
Games and simulations seemed like a good
method.
Contents of Basic Computer Games (right)
and More Basic Computer Games (below).
Artillery-3 Life Expectancy
Baccarat Lissajous
Bible Quiz Magic Square
Big 6 Man-Eating Rabbit
Binary Maneuvers
Blackbox Mastermind
Bobstones Masterbagels
Bocce Matpuzzle
Boga || Maze
Bumbrun Millionaire
Bridge-lt Minotaur
Camel Motorcycle Jump
Chase Nomad
Chuck-A-Luck Not One
Close Encounters Obstacle
Column Octrix
Concentration Pasart
Condot Pasart 2
Convoy Pinball
Corral Rabbit Chase
Countdown Roadrace
Cup Rotate
Dealer's Choice Safe
Deepspace Scales
Defuse Schmoo
Dodgem Seabattle
Doors Seawar
Drag Shoot
Dr. Z Smash
Eliza Strike 9
Father Tennis
Flip Tickertape
Four In A Row TV Plot
Geowar Twonky
Grand Prix Two-to-Ten
Guess-lt UFO
ICBM Under & Over
Inkblot Van Gam
Joust Warfish
Jumping Balls Word Search Puzzle
Keno Wumpus 1
L Game Wumpus 2
May/June 1981
So | put out a call to all our customers to
send us their best computer games. The
response was overwhelming. | got 21 ver-
sions of blackjack, 15 of nim and 12 of
battleship.
From this enormous outpouring | se-
lected the 90 best games and added 11 that
| had written myself for a total of 101. |
edited these into a book called 101 Basic
Computer Games which was published by
DEC. It still is.
When | left DEC in 1974 | asked for the
rights to print the book independently.
They agreed as long as the name was
changed.
Introduction Hi-Lo
The Basic Language High I-Q
Conversion to Other Hockey
Basics Horserace
Acey Ducey Hurkle
Amazing Kinema
Animal King
Awari Letter
Bagels Life
Banner Life For Two
Basketball Literature Quiz
Batnum Love
Battle Lunar LEM Rocket
Blackjack Master Mind
Bombardment Math Dice
Bombs Away Mugwump
Bounce Name
Bowling Nicomachus
Boxing Nim
Bug Number
Bullfight One Check
Bullseye Orbit
Bunny Pizza
Buzzword Poetry
Calendar Poker
Change Queen
Checkers Reverse
Chemist Rock, Scissors, Paper
Chief Roulette
Chomp Russian Roulette
Civil War Salvo
Combat Sine Wave
Craps Slalom
Cube Slots
Depth Charge Splat
Diamond Stars
Dice Stock Market
Digits Super Star Trek
Even Wins Synonym
Flip Flop Target
Football 3-D Plot
Fur Trader 3-D Tic-Tac-Toe
Golf Tic Tac toe
Gomoko Tower
Guess Train
Gunner Trap
Hammurabi 23 Matches
Hangman War
Hello Weekday
Hexapawn Word
Converted to Microsoft Basic
The games in the original book were in
many different dialects of Basic. So Steve
North and | converted all the games to
standard Microsoft Basic, expanded the
descriptions and published the book under
the new name Basic Computer Games.
Over the next three years, people sent in
improved versions of many of the games
along with scores of new ones. So in 1979,
we totally revised and corrected Basic
Computer Games and published a com-
pletely new companion volume of 84 ad-
ditional games called More Basic Com-
puter Games. This edition is available in
both Microsoft Basic and TRS-80 Basic for
owners of the TRS-80 computer.
Today Basic Computer Games is in its
fifth printing and More Basic Computer
Games is in its second. Combined sales are
over one half million copies making them
the best selling pair of books in recrea-
tional computing by a wide margin. There
are many imitators, but all offer a fraction of
the number of games and cost far more.
The games in these books include classic
board games like checkers. They include
challenging simulation games like Camel
(get across the desert on your camel) and
Super Star Trek. There are number games
like Guess My Number, Stars and Battle of
Numbers. You'll find gambling games like
blackjack, keno, and poker. All told there
are 185 different games in these two
books.
Whether you're just getting started with
computers or a proficient programmer,
you ll find something of interest. You'll find
15-line games and 400-line games and
everything in between.
The value offered by these books is out-
standing. Every other publisher has raised
the price of their books yet these sell for
the same price as they did in 1974.
Moneyback Guarantee
Examine one or both of these books and
key some games into your computer. If
you're not completely satisfied we'll refund
the full purchase price plus your return
postage.
Basic Computer Games costs only $7.50
and More Basic Computer Games just
$7.95 for either the Microsoft or TRS-80
edition (please specify your choice on your
order). Both books together are $15. Send
payment plus $2.00 shipping and handling
to Creative Computing Press, Morris
Plains, NJ 07950. Visa, MasterCard and
American Express orders should include
card number and expiration date. Charge
card orders may also be cailed in toll-free to
800-631-8112 (in NJ 201-540-0445).
Order today to turn your computer into
the best game player on the block.
creative
Gorepatirg
Morris Plains, NJ 07950
Toll-free 800-631-8112
(In NJ 201-540-0445)
19
Mastermind x
Raymond Fowkes
This game is played much like the
original board version. The computer
selects a code of four colors from a possible
six: red. orange, yellow, green, blue, and
white (duplicates allowed). It is now up to
you to find. in nine moves or less. the
exact color and position of each element
of the code by entering four colors of
your choice. first letters only, one at a
time. The computer then compares the
guess with the pre-selected code, first for
black pegs and then for white pegs. The
pegs are displayed next to the corres-
ponding guess. A black peg means a right
color in the right position, a white peg
means a right color in the wrong position.
For example. suppose the hidden code
was R B W B, and the first guess was R G
B O. You would be given one black peg
and one white peg because ‘red’ is in the
right position and ‘blue’ is correct but in
the wrong position.
These features make this program
Superior to many other versions of this
game.
The game continues until 1) the code is
broken and “uncovered.” 2) “Q” is entered.
signifying ‘quit.’ or 3) all nine tries are
used.
Conversion
This program is designed for a 2K system.
but can be reduced to 1K by doing the
following:
Delete lines 10-140, 250-320, 720-770.
Change lines:
"ROYGRW — " (3
C+2144+2KE, B (E)
C+203+E,9
C+205+E, 128
FOKE C+DRZO+2XE+11,0
PORE C+Dk20+2KkR+12,0 (B)
FORE C+Dk204+19, 0
STOF
SAO
480
360
660
800
al
B20)
34.0
PRINT
FOKE
FORE
FOKE
Raymond Fowkes. P.O. Box 336, Coalinga, CA
93210.
20
5 RANDOMIZE
PRINT ,”
ZO PRINT
30 PRINT " I
PRINT
PRINT
PRINT " ñ
ZO PRINT "
75 PRINT
Be PRINT "
5 PRINT "
F0 PRINT
PRINT
1 PRIN
j PRINT "
O PRINT
J
)
WILL
BLACK F
COLOR IN
A WHITE E
COLOR IN
YOU
LINELL
; PRINT " IN
A$
Apal Pp
O INPUT
35 IF NOT
CLEAR
DIM ACS)
DIM BCS)
DIM CCS)
FOR Bat
LET ACE) =RND (6)
IF ACB)=1 OF
IF ACE) =4
IF ACE) =55 OR
NEXT Es
CLS
FRINT
FRINT
PRINT
PRINT !
FOR F=1 TO 11
PRINT CHR& (128)
370 NEXT F
FOR Ci
PRINT
PRINT
PRINT
NEXT C
FOR D=1 TO 9
FOR E=0 TO 3
INFUT Ag
LET B(E)=CODE (A$)
GO SUE 900
FORE C+XIO+2XE, Ed
IF Age" gn
LET © (CE) #@ (CE)
NEXT E
LET E=0
FOR Rea TO Z
IF NOT BCR =C (B)
LET E=E+2
PORE C+299+E, 9
THE
O š
"B = BLUE
"a -=
10 3
10=-C, x i a
300
310
wan
TAG
340
wa)
JOQ
370
3080
wd FU)
LET
MEX T B
TF Ex
610 FOR fest)
S20 FOR Feo TO 3
630 IF OCB Ss THEN GO
IF NOT Cc)
LET EE +2
FOKE
LET
60
THEN GO TO
TO z
600
640
630
60 FORE Ue 2393 E OE
B (F) =O
TÜ
70
680 700
690 NEXT F
700 NEXT B
710 NEXT D
TOO BAD"
FOG
730 60 SUB
760 PORE B+C+De20,
770 NEXT E
¿30 GO SUE
7970 FOR B=0 TO Š
800 FORE C+DkAZO+2kE +1
610 FOKE C+D*20+2%k8+1
Gb MEXT E
B20 PORE C+D*e#20+115.,0
640 GO TO 130
COD
PC
700 LET C=PEER (16396) +PEEK (14397
210 RETURN
MASTERMIND"
SE
“COLORS AND
ey š Ë: Jara
ACE) =é
LECT OA
YOU MUST
THE
EG
THE
HAVE 9
Q TO QUIT AND/OR", PF
P TÜ PLAY.”
N STOP
T ey OR) se
THEN LET
iaa Le
Seed
Y =
E)
TO 720
THEN GG
"ESE
7 tht
TO 700
THEN GC
ppp SS sei
(neck
E (A$)
ES 7 13
DEE
03, AE)
(At ter
RIG
MEANS
WRONG FOS IT ION. "
YELLOW 0 =
BLACK PEG",CHR$(128)3" =
¿A a Shift ñ)
" leave 3
CODE OF FOUR"
TRY
HT
A RIGHT" ¿(2
í
`
TRIES." (& sp.)
> THEN LET
(ere ake
TO 890 (Check
LET B(B)=O (Destroy matching pairs)
TO 6%0
white
pedt )
Foar
AE, SEL
CO E)
ORANGER
= GP.
TO BREAK IT
MEANS A RIGHT" (3 sp.
POSITION.” ©:
E ee
HLR) mpi
AB) =A CB) ATA ZO
f Gr”
RED
WHITE FEG
black
USING THE
Cruces a
CLUES
G = GREEN
mec
I GIVE
YOU. "
WHITE
SYNC Magazine
[Instructions] B = BLUE Y = YELLOW O = ORANGE
R = RED G = GREEN W = WHITE
Sample Runs (2K) W = BLACK PEG O= WHITE PEG
MASTERMIND TOO BADO R B O GD
I WILL SELECT A CODE OF FOUR
COLORS AND YOU MUST TRY TO 9
BREAK IT USING THE CLUES I
GIVE YOU. 8
A BLACK PEG MEANS A RIGHT 7 O [Quit]
COLOR IN THE RIGHT POSITION.
A WHITE PEG MEANS A RIGHT ROQ DETER
COLOR IN THE WRONG POSITION. SO OOOUBRGO
YOU HAVE 9 TRIES. 4BOOOBORG
INPUT Q TO QUIT AND/OR
P TO PLAY AGAIN. a = aye
TYPE IN P TO PLAY. a= i Cas
! g BBBY
9:135
B = BLUE Y = YELLOW O = ORANGE
R = RED G = GREEN W = WHITE
B -= BLACK PEG O= WHITE PEG
YRBW
[Code is only “uncovered” after it is Sample Runs (1K)
guessed, all turns are used, or a quit]
9 ROYGBW D GR G Y O
[Code is only “uncovered” after it is
8 guessed, a quit, or all turns are used]
7
9
6 8 W @ MB Y R BW [Correct answer]
8
58E 0O Y Y GR
7
48 B Y Y OW
3m G WG w Mischr9 68 BBAEAGCRGY [Correct answer]
. G WEB R
2. O R O R Dischr 128 >m O
48 8 G WO Y
10 O B B Y Y
LA 30m Y B BY
O Creative Computing
20 RORO
18 O G G WW
9:840
“It says the odds of you making that hand are 2,385,000 to 1, and
the odds are 3 to 2 that a nut like you will try for it.”
May/June 1981 21
Graphics Surprises
James H. Parsons
When we combine the uncertainty of
the ZX80's randomizing feature with its
graphics capacities. we have the ingredients
for a lot of fun. For example. the Crazy
Quilt program uses only two instructions,
yet it fills the screen with a zany tangle of
symbols and spots:
Crazy Quilt
10 PRINT CHRS(RND(9)) +2);
20 GO TO 10
Using “((RND(9)+2)” to assign the
characters to be printed insures that only
the keyboard graphics symbols. CHR$(2)
through CHRS(11). will be selected; and
it avoids the blank space. CHR$(0). and
the null string. CHRS(1). By changing the
range of numbers being randomly selected.
we can fill the screen with letters. numbers.
punctuation marks. inverse characters. or
any combination of these so try numbers
other than 9 and/or 2.
Walls and Dikes
A more challenging application of
graphics and randomizing is found in “Walls
and Dikes.” This program generates a
maze in which the configuration of the
baffles is fixed randomly within parameters
which the player can set. In order to
make spaces for traveling within the maze.
the program alternates rows of “walls”
with rows of “dikes.” The wall rows are
solid with just a few randomly-placed spaces
to pass through. The dike rows are com-
pletely open. except for several randomly-
placed dikes. To keep maze travelers from
sneaking around the ends of wall lines.
there is a 19 x 23-space frame around the
whole maze. A randomly-placed opening
in the top of the frame lets maze travelers
in. In the bottom of the frame is a
randomly-located treasure marked by a
$.
James H. Parsons. 2575 Eastcleft Dr.. Columbus.
OH 43221.
22
The prospective maze traveler enters
the densities (from 1 to 100) of the walls
and dikes. When the computer draws a
maze according to the densities specified.
the maze traveler must try to find a way
from the door at the top of the frame
through the maze to the treasure at the
bottom. Relatively “thin” densities of walls
and dikes (for example. W=10. D=5)
present no challenge, while extremely dense
configurations (for example. W=95. D=65)
cease to be passable mazes at all. Densities
of about W=88 and D=9 seem to give
the most satisfactory results. At these
densities, some of the mazes produced
will be ridiculously easy to get through,
while some others will be impassible. Most
will be somewhere in between.
The blank line just above the bottom
of the frame avoids the frustration of finding
a wall or dike sitting right on top of the
treasure, and sealing it in. With the blank
line, the treasure is always accessible from
some part of the maze.
Try experimenting with different
densities for the walls and dikes. Try using
different symbols for the parts of the
maze.
SYNC Magazine
Typical Run of “Walls and Dikes”
The player starts the program running
by pressing RUN and NEWLINE and the
display on the screen says:
WALLS AND DIKES
WALL DENSITY?
The player enters a number from 1 to
100, indicating the percentage of space to
be filled in by solid horizontal walls.
DIKE DENSITY?
FRINT . "WALLS AND
20 PRINT "WALL
oO) TNFUT U
PRINT
INFUT D
eS
LET Ath Fe
GBO LET Fa: CHE
GO SUB. 1000
FOR Ci TO 8
Lac)
$1
S (y)
` 7
Lio PRINT Ass
La FOR Ke "I
Le Les. |
140 TE +
| IF NOP FE< D
| BEKT E
| ELBIT
1 PRINT
ror (2
es Lisi
ait IF
ww! IF HAN
MEX T G
PRAD
oA oe >
fot Y, L
tas lee
“ oe
jt En F. is, Je y £
NOT PISIN
THEN
MEDIOS
THER
PRINT
fou PRINT
FOR Læt
FRINT
MEXT La
PRINT
Let BS
weet GO SUE 1 D (at)
PRIN
TEEL]
miad Laa
Gi
ig T
BE
LEERS
Pose” See? teo”
“WEIL. DME í
ty
ETE PCO 20
1000
LOTTO
Loo
IO
11040
1030
1060
1070
LET AasRND CZL)
FOR Bei TO 21
IF NOT B=ñA THEN
IE Ea THEN PRINT
NEXT B
PRINT
RETURN
A$
May/June 1981
PRI
PRINT A$; (E
Ck.
t
A.
Bens
(Makes
( L OUO 25 C
Laine
(|a eaf t.
RE $ n u i se. dp
Right side af dr
{ F: iu tj "ma
š HI al lo a E be
PRINT
The player enters a number from 1 to
100 indicating the desired percentage of
space to be filled in by dikes.
The screen goes blank for a few seconds.
and then a maze appears. The maze is
framed on all four sides, but there is a gap
in the top part of the frame for the player
to “enter” by. and a dollar sign in the
bottom part of the frame—the “treasure.”
DIKES"
DENSITYT™
"DIRE DENI TY?"
the
hep öf
ales g
thie
A QENE E Wali
DALE. )
side of frame
joeg pave Geum, saa REO sq, pisai gave gece
Gener aves
Ti a
dik
bog. ets
A Eh
E 5 TH E HN FRINT Arz
sts
Or trame for di
rates Wald
sees, JF Me aa
Ly rt
Arme Fo
A la ies act
Sure in battom of
Lom cir the
me ttm te Deum ne
ay ET make) Py a ta] La
“ftreasure out ot
oe? coor Zt
inte the door /treas
door/treasure cut of
ee CUES n
i
ee P P, `. ... sore — < .... > e .. a i
Crp £ PETES orgy Weed 1 j
}
The location of the door and treasure is
determined randomly. as is the distribution
of walls and dikes. once their densities
have been set. Under the frame is
printed:
NEWLINE
When the player presses NEWLINE.
the maze is replaced by:
WALL DENSITY
The game begins again.
E
)
| st a ae ë Umm
L k Py gig ee
e Lines. )
10.1)
Pe LTTE 3
+ po z aa po
Reminds player how ta get
l
T
T Z$ (P
tert corners, )
= B Ë: 3 cl “Ll AE ES " )
21 ALI € (cA ad
righk corners.)
23
As
Endangered Species
Thirty-six different issues and not one has yet learned to breed in captivity. Their days in
qi i el
our warehouse are limited. Could you provide a good home for a magazine: In exchange. led: Mudie Wei ects: suena L r=
you re assured hours of reading pleasure. And. before they disappear. find the missing link ictions: PEE Kine and POR Eme for
in your own collection. ` Video Displays: Interview with
The applications, programming techniques, simulations, problems, commentary, articles fichael Shrayer: Computers and Edu-
hd : ‘ . . ation—Questions of Value: Game
and fiction are practically timeless. Not only that. but the earlier issues are actually roprams for Gold Mine and Atom 20.
Increasing in value.
valuations: Heathkit H-8: Thinker
Prices are $2.50 each for all issues after March 1980. $2.00 each for all other issues. $5.00 oys Floppy Disk: Electric Pencil:
for three. $15 for ten. Postage is $1.00 for up to 3 issues. $2.00 for 4 or more. Best bet is the eS oe en Eor
Super Special: One of everything we have —36 magazines in all—for only $50 post paid.
omputer Music Records.
creative compatirg
ol. 5, No. 3—March 1979
39 E. Hanover Avenue Morris Plains, NJ 07950
ol. 5, No. 2—February 1979
ultiple Regression Analysis Simpli-
bir Articles on Data Base Manage-
Vol. 3, No. 4—July/Aug 1977
ent: Sports Judging on a Microcom-
uter: Shopping for a Payroll System:
Four Dynamic Games: Eliza (in
Basic!) Bocce. Backgammon and
FO. First Part of Dwyer's “8-Hour
ourse in Basic.” Writing Your Own
CAI: “Structuring the Lesson to the
student.” Interview with Lee Felsen-
stein, Designer of the SOL (and several
machines since!). Computers in Medi-
Vol. 4, No. 4— Jul / Aug 1978
Features on Business Computing and
Word Processing: Special Section on
Interfacing Your Computer to the
Outside World: Three Perspectives on
Video Games; ROM Section; High
Resolution Graphics for Apple Il:
GAMMON and EVILK Motor Cycle
Jump Game Programs. Evaluations:
‘ine and Health Care. Evaluations:
Spacewar and TREK
80. “Sherlock
Holmes and Charles Babbage.”
Vol. 3, No. 5—Sept/Oct 1977
Dynamic Debugging System for 8080
Assembly Language: Bibliography of
“Limits to Growth” Models: Dwyer: 8
Hour Course in Basic—Part 2: Pro-
gramming Approaches to Solving
Complex Equations: Computerized
Conterencing. Symmetric Art on your
Computer. Games: Nomad. Rotate.
Lissajous. Evaluations: 5 Microcom-
puter Basics: Software Technology
Music System.
ol. 3, No. 6—Nov/Dec 1977
rogramming Techniques: File Struc-
ures: CAI: Multiple Problem Types:
ii a
omputer History Quiz: Final Exams
by Computer: Dwver: 8 Hour Course
in Basie— Part 3,
Mastermind il.
Othello. and Inorganic Chemistry Pro-
grams. Evaluations:
Nine Microcom-
puter-based Toys: Comp IV: S-100
Compatible Kits: TDL Xitan: and three
$080 SK Basics.
Vol. 4, No. 1—Jan/Feb 1978
Fast Sorting Algorithm: How to Write
a Computer Simulation: More File
Structures: LOGO: Murphy's Laws:
Dwyer: 8 Hour Course in Basic — Part
4. Programs for World Population
Model. Biorhythms in Basic and APL.
Yahtzee. Van Gam. Kirkof, and Net-
work. Evaluations: 3 Electronic
Games: Radio Shack TRS-80: Heath
H8 System.
Pet: Apple II: Atari Video Pinball:
Atari Video Computer.
Vol. 4, No. 5—Sept/Oct 1978
Educational Features: 4 Simulation
Articles: Accounts Receivable Sys-
tems: Real World Games:A Real-Time
Clock You Can Build: All about PAS-
CAL: Intelligent Videodiscs; 40 Pro-
gramming Ideas: ROM Section: Hex
and Star War Games. Evaluations:
Exidy Sorcerer: Radio Shack TRS-80:
Bally Arcade: Speak & Spell and Spell-
ing B: Computalker Speech Synthe-
sizer: Peninsula Pet Cassettes. Merlin
Video Interface.
ol. 4, No. 6— Nov/Dec 1978
Consumer Computers Buying Guide:
ritical Path Analysis; Experiment in
eaching Strategic Thinking: ROM
ection, Subject Index and File Index
n Basic. Programs for Mail Lists, Pat-
erns, Plotting, Corral, Joust, Puzzle.
nd a Christmas Letter. Evaluations:
P/M Disk Operating Systems: North
tar Horizen: Backgammon Compu-
rs: Smart Electronic Games and
ideo Games.
- Vol. 5, No. 1/January 1979
Computers and Robots in Fiction:
Guidance Counselor System: Survey of
Educator's Attitudes: How to Hide
Your Basic Program. A Program to
Calculate Depreciation for Taxes. and
the Space Maze Game. Counterfeit
Cursor and Speed Reading for the Pet.
Evaluations: Microsoft Fortran 80:
Structured Programming with Tiny c:
Smoke Signal's Text Editor: Exid y
Sorcerer: Ohio Scientfic Superboard
i. a
rogramming the Game of Go: Busi-
ness Computing with the Sorcerer:
Social Science Survey Program. Eval-
uations: Terrapin Turtle: Videobrain:
Pet Monitor: TRS-80 Floppy Disk:
Apple Floppy Disk.
ol. 5, No. 4— April 1979
Safeguarding Your Computer: Inter-
pretive Programming: Elements of a
Good Computer Game: Music Com-
position: Marin Computer Center.
Programs for An Intelligent Calendar.
Vertical Graphs and Bar Graphs,
Flowers for the PET. Evaluations:
heckbook Maintenance System:
Whatsit Data Base Management Pro:
Word Processing Systems: Pilot Tutor-
al: Writing User-Oriented Programs:
Amoritization Schedules, Reading and
omprehension Exams: Hiding Your.
Basic Program: Cribbage and Mille
Bornes Game Programs. Evaluations:
WP Daisy Word Processing: Word-
master Text Editor: PDI IQ Builder;
Malibu 160 Line Printer
Vol. 5, No. 6— June 1979
signt Articles on Computer Graphics
nd Plotting: Using Basic Strings:
Microcomputers in the Hospital:
Billing Program for the Sorcerer. Ink-
blot and Greed Game Programs. Eval-
uations: TRS-80 Voice Synthesizer:
HIPLOT Digital Plotter: Structured
Systems. Name and Address Program:
ALF/Apple Music Synthesizer.
o. 7— July 19
Four features on Sorting. Files and
Data Bases: Creativity Test: World
ower Systems: Personal Finance
odel: Two Ecological Simulations:
rograms for an Ecological. Game.
Niche. Brain Teaser. dnd Zone X.
Evaluations: BrighterWriter. SWTPC
T-82 Graphics Terminal: APF PeCos
ne: Heuristics Speechlab: Micro Pro
Super Sort: Diagnostic Programs for
the Pet.
Vol. 5, No. 8—August 1979
Can Computers Think”: 5 Basic Lan-
guage Programming Techniques: The
Law and Your Computer: muMath:
Image Processing: Manipulating Pen-
cil Files: Adventure. a new type of
computer game simulation. The
Games HVOLT and FORT. Evalua-
tions: Texas Instruments 99/4: Radio
Shack TRS-80 Model Il: SWTPC PR-
40 for the Pet: IMSAI VIO.
k.
Nol. 5, No. 11— November 1979 Vol. 6, No. 6— June 1980
Adventure: Complete Listing in Basic. Fourteen Graphics Articles: Polar
Controlling Household Devices: Car Plots. 3-D Graphics. Animation,
Pooling: Mumps language: Computer Graphic Mazes. Motion Simulation.
Í art Exhibition: Build Your Own Joy- Inside Space Invaders. 7 Music Arti-
“sticks: Telephone Dialer for TRS-80 “les: Digital Audio, Computer-Aided
or Northstar: Teacher-Made Tests: | Sight Reading. Design of a Synthe-
Evaluations: Comparison Chart of 6 Sizer. Digital Enhancement of Old
Popular Personal Computers: Com- Recordings. Comparison ot Printers:
parison of 26 Single Board Computers: | Evaluations: The Atari Machine:
Electronic Games & Toys: Quick Neelcos Music Box for the PET:
Printer Il: Interact Computer: User- HeathKit-Thomas Electronic Organ
Definable Character Generators: Kit.
TRS-80 Level 111 Basic: Pet Software Vol. 6, No. 7—July 1980
from Creative Software: Word Proces- Four Articles on Adventure Games:
sor: Introl X-10 Home Control System. Dragon, Dungeon. How to Fit a Large
Program into a Small Machine. How
to Write an Adventure. 6 Simulation
Vol. 9, No. 12—December 1979 Features: Genetics. Electric Manage-
Controlling Household Devices: Part ment. Medical. Ecological. Sports.
2: LOGO: Computerized Biofeed- Self-Reproducing Programs: Man-
back: Computers at the Rodeo: Crea- Machine Dialogs: Selecting a Compu-
ting Digitized Video Images. Programs
for using the Microcomputer as an
Investment Tool: Animation on the
Apple. Magic Tricks. “Turn-Key”™
CP/M System. Evaluations: More
Electronics Games: Language Trans-
lators: APF MP1000 Video Game Sys-
tem: 6 Word Processing Printers:
Satellite Tracking Software; SysKit
for the 8080: Assemblers: CP/M vs.
TSC: Statistics for the TRS-80.
Vol. 6, No. 1—January 1980
Interviews with Donald E. Knuth and
William Wulf; Six Features on Artifi-
cial Intelligence: Air Traffic Contro!-
ler; Computerized Resume: GROW:
A Program that Learns: Evaluations:
Six Basics: NEWDOS and TRSDOS:
Auto Scribe: Micro Music.
Vol. 6. No. 2—February 1980
Six Articles on Investment Analysis:
David Levy: Intelligent Computer
Games: Programs: Geneology.
Graphing. Genetics: Evaluations:
Word Star vs Electric Pencil: Pascal
for the TRS-80: Micro Composer:
Data Dubber: Sorcerer Word Pro-
cessing Pac: Trivia Contest Results.
Vol. 6, No. 3—March 1980
Networks for Personal Computers:
Artificial Intelligence: How to Make a
Basic Tree: Interview with Joel Birn-
baum: Three Mile Island Game;
Extended Precision Computation;
‘Rolodex’ Data Base Program: Photo-
graphing Your Computer System.
Evaluations: TI 99/4, Modems, Cobol.
Tiny c. 10 Software Packages.
Vol. 6, No. 4—April 1980
sonal Recreational Micro Computer
Data Interface World Journal—the
¿Famous 73 page April Fool parady. 8
¿Articles on Reading and Language:
nterview with Gordon Bell: Evalua-
ions: Heath WH-89: Atari 800 vs
PET: Chatworth Mark Sense Card
Reader: Adventure.
Vol. 6, No. 5— May 1980
Seven Features on Saving Money with
vour Computer: Analysis of Stock
Options. Budgeting Model. Shopping
Lists. Home Inventory. Home Pur-
chase. Retirement Planning. Compu-
ter-Aided Model Rocket Design: Two
Natural Language Systems: Evalua-
tions: PET 2022 Line Printer: APF
Imagination Machine: Personal Soft-
ares Desktop Plan: Universal Data
ntrv System.
ter Dealer. Evaluations: Super-Text
vs. Easy Writer: Mountain Hardware
ROM PLUS+: Toolkit for the Pet:
Chart Comparing Basics of 8 Popular
Computers.
Vol. 6, No. 8— August 1980
Games Features: Computer Bismarck.
Knights Tour. Guess My Animal.
Turnablock Game, Fifteen and Hot.
Mind Exerciser. Marketing Your Own
Program: Computer Graphic Designs:
Robotics Conference; Insertion Sort:
Stocks and Listed Options. Evalua-
tions: Magic Wand: VisiCalc: Beta-80:
Asteroids in Space.
Vol. 6, No. 9— September 1980
Twenty Educational Applications and
Features: Language Arts CAI Devel-
opment, Grading Program, Computers
in the Classroom. Asimov: Point of
View: How to Heapsort: New Consu-
mer Electronic Products: TRS-80
hopping List for Schools. Evalua-
ions: Milliken Math Sequences: Exa-
ron Stringy Floppy: EDS Videotape
eries “Little Computers—See How
hey Run”: 8 Apple JI Software Pack- Ya
ves: Educational Packages.
Vol. 6, No. 10—October 1980
Symposium on Actor Languages and
Smalltalk: Linked Merge Sort: How to
Solve It: 9 New Applications and
Games: Election Prediction. The Pres-
dential Campaign. Computer Division
“valuations: OSI C2-4P Computer.
TRS-80 Voxbox. Two Text Editors.
-1ve Music Systems. 15 Software Pack-
ves. BASEX.
Vol. 6, No. 11—November 1980
Actor Languages and Smalltalk — Part
2: Effective Documentation: Bomb-
proof Data Entry: Interactive Systems
and Virtuality: Fast Sorting: Control-
led Input in Basic: Loosening Packed
Basic. Future of Small Business Com-
puting: Planning Your Diet. Evalua-
tions: Electronic Games: Computer
Ambush: TR Copy.
Vol. 6, No. 12— December 1980
A Comparison of Basic Systems:
Buving Guides to Personal Computers
and Electronic Toys and Games:
Legal Protection of Computer Pro-
grams: Nuclear Power Plant Simula-
tion: Superman Game: Logic Problem
Solver: Interview with the inventor of
the ZX80. Clive Sinclair: Alvin Toff-
ler: The Electronic Cottage. Evalua-
tions: Sinclair ZX80. Atari. Apple Pas-
cal. CBM2022 Smart Printer. Pearl.
Apple II and Apple II Plus. Pet. TRS-
80.
July 1977
SOL. The Inside Story: Braille and the
Computer Video Newspaper: A Chip
is Born: The Care and Feeding o!
Your Home Computer. Digital Foam
the peripheral of the future.
August 1977
The Kit and I, Part I, by someone
who's never soldered before: Intro-
luction to the Fundamentals of Com-
puter Memory: Tips for the Do-it-Y our-
self Hardware Beginner; Binary clocks;
APLomania.
September 1977
Xeroxes and other hard copy off your
CRT; Payroll Program: How Compu-
ters Work: The Kit and I, Part I]: or
Power to the Computer: CCD`s How
They Work and How They re Made: A
look at PLATO, an Educational Com-
puter System; IBM 5100.
October 1977
Binary Arithmetic For the Beginner;
Microprocessor Aid for the Deaf and
Blind: The Kilobyte Card: Scott Joplin
on Your Sci-Fi Hi-Fi; Building a Basic
Music Board: Flowcharting: Payroll
Program. :
November 1977
Solar Energy Measurement; A Begin-
ners Introduction to BASIC: The Kit
and I. Part HI: More Music to Play on
Your Computer: Micro Maintenance;
Solomon and Viet: Putting Together a
Personal Computing System: Time
Sharing on the Family MICRO.
December 1977
A Beginners Guide to Peripherals:
The Best Slot Machine Game Ever:
Artificial Intelligence’: An Electronic
Jungle Gym for Kids: File Copy Pro-
gram: Better Health Through Elec-
tronics: The Kitand I Part IV.
January 1978
Synthetic Skin for Your Robot and
How to Make It: TLC: A Visual Pro-
gramming Language: The Code That
Can't Be Cracked: Beginner's Guide
to Computer Graphics: The Computer
and Natural Language: First-Timer':
Guide to Circuit Board Etching.
Variable Conversions
in the ZX80
Joseph Sutton
There are many cases when it is conven-
ient to convert one type of variable to
another, such as numeric to string, or string
to numeric. In the ZX80 variable conver-
sions from numeric to string are done with
the STR3S( ) function. The reverse conver-
sion is not available with the 4K Basic.
Given a string variable containing numbers,
the program below looks at each number
individually to determine its magnitude.
The CODES for the numbers go from 28
to 37 (CODE (“0”) = 28, CODE (“1”) =
29, etc) so that by subtracting 28 from the
CODE you get the number itself. By using
CODE (A$) - 28
then remove the first character with TLS
( ).
108 LET A$ = TLS (AS)
X is then tested with an IF statement to
verify that it isa number from 0 to 9, and if
it is, it is put into the numeric N with LET
N = (N * 10) * X.
109 IF NOT X < 0 AND X < 10 THEN
LET N = (N * 10) + X
10 LE gant)
101 Le PT Ysa
Li DiM Pc)
Line Le? Ni)
ite GE TP Rd 3)
io LEY Ni i
106 Lidl c
Oy LET Kepi fay) - 2S
1068 LET AS=TLSe (Ass
0%? TF NOT Ka Mii & Ed Lots | L's) its) READ + X
Llo TF Kale THER 17 pine 1
111 YF Xu L TREN Liz!
Lila 11 cid THEN LES
bia 1F x GO Tt! 11
bie TF Ae AND =i AND Mqiló=Ó THEN LET ed
Lim 60 VO 107
i i le
117 IF Y=3
LIB RETURN
This is the full subroutine with all the fancy things added and a small “main”
program.
ENTERING
PE S E 3
LA
“SO, Gee
= OC RE
26
PRINTS ON SCREEN
` si 3 sd ke 4 oag ke abo ate
l. bd AR LORA
i
(A T YK TOR KO
Let's assume we have a string containing
“123.” Line 107 sets X equal to 1 (29-28),
then line 108 removes the “1” from AS,
and line 109 sets X equal to 1 (N = (0 * 10)
+ 1). If we return to 106 and start again,
A$ = “23”, X = 2and N = 12 (N = (1 * 10)
+ 2). If we go through a third time, A$ =
“3”, X = 3 and N = 123 (N = (12 * 10) +
3). Now we need something to test for the
end of the string.
113 IF X = -27 THEN RETURN
115 GO TO 107
In the ZX80 all strings end with a “null”
character with a CODE of 1. Line 113 tests
for this and returns to the main program
when the end is detected. Line 115 keeps
the routine going until line 113 finds the
end. Now, with one more line, we have a
Basic subroutine for doing the missing con-
version.
103 LET N = 0
107 LET X = CODE (A$) - 28
-108 LET A$ = TLS (AS)
109 IF NOT X < 0 AND X < 10 THEN
LET N = (N * 10) + X
113 IF X = -27 THEN RETURN
115 GO TO 107
This subroutine will search the string A$
until it finds a number. It will then put the
numbers into N, stopping when it finds the
end of the string, ignoring all other charac-
ters. The routine will also destroy the
contents of A$, so A$ must be saved if you
want it for later use.
With only minor modifications it can be
made to accept decimal numbers and
scientific notation. First N becomes an
ARRAY containing the integer portion in
N (0), the fractional portion in N (1), and
the exponent (for scientific notation) in N
(2). To use this routine as a subroutine all
three portions of the ARRAY must be set
to zero at the beginning. S is the counter
to tell the ZX80 in which part of the ARRAY
to place the numbers. We also have to add
lines to detect decimal points and “E” if
scientific notation of the form 1.5 E 3 is
required (1.5 * 103 ). Line 110 is added to
detect minus signs and lines 116 and 117
properly locate the minus signs. When the
fractional portion of the number is pro-
cessed, the leading zeros are removed. If
they are not kept track of, errors will occur;
1.005 would become 1.5, etc. Line 114
detects leading zeros and Z equals the
number of leading zeros. In line 30 of the
main program you will notice the expression
TLS (STR$ (10 ** Z)). IF Z = 2 (2 leading
zeros), 10 ** Z = 100 and the expression
becomes the string “100” with the “1”
removed or “00”. This replaces the zeros
in the print statement. No more than four
leading zeros can be used (10 ** 5 =
100,000 and you get error message 6,
arithmetic overflow). O
Joseph Sutton, 170 S. Hillside Ave., Succasunna,
NJ 07876.
SYNC Magazine
W;
Graphics, Games and Gold
Games can be divided into three broad
classes. The first has a clearly defined
play area which remains the same each
time the game is played. Chess. back-
gammon. tic-tac-toe. and all the card games
fall into this category. The second class
requires a random area which regenerates
differently each time the game is played.
Into this group fall the adventure. hunt
and seek classics. The last class encom-
passes all the animated games involving
flight and shooting. such as Star Wars
and Space Invaders. which require real-
time inter-action.
I decided to write my own game using
as much of the ZX80 graphics as possible.
but without waiting for the 8K Basic ROM
and 16K RAM expansion to become
available. My choice of game was
influenced by several considerations.
Everyone knows what the successful
outcome of a chess.. backgammon. or
card game should be. so there is little
room for invention. The game either meets
expectations or fails. Since the computer
Martin Oakes, 2100 Oriole Dr.. Freeport, IL
61032.
May/June 1981
Martin Oakes
SSS
NEWLINE
Figure 1. The Game Area.
CONSTANTS
MAIN PROGRAM
-CONT-
SQUARE GAME AREA
RANDOM WOOD
PEEK IN DISPLAY
POKE IN DISPLAY
RANDOM PATH
MOVE CHARACTER
SEARCH FOR CHARACTER
FIND AND REPLACE
GOOD OR EVIL?
Figure 2. Organization of Program.
10
is to be a player. it must be a worthy
opponent. A dynamic game would have
to wait until the 8K ROM becomes avail-
able because the screen goes blank during
computation with the 4K Basic.
My choice then was to plan an “adven-
ture” type of game. which has the added
bonus that the writer can make, his own
rules.
From the beginning I did not expect to
fit all the features I wanted into 1K of
memory. So instead I wrote a series of
subroutines which could be independently
de-bugged and set aside to wait for the
arrival of more memory. At that time
they would be at joined together to make
a working program.
The hero is to roam within a randomly
generated wood. cave. or castle. In the
final version the monsters and treasures
he encounters may appear as drawings.
The game area is a rectangle 15 characters
or columns by 10 lines. Later it can be
expanded to occupy as much of the screen
as required. See Figure 1.
Each feature of the game is written as a
subroutine starting at a line number which
is a multiple of 100. See Figure 2.
27
Our hero is going to begin his journey
in a wood:
400 FOR L = 1 TO 10
405 LET M = L
410 IF L > 5 THEN M = 10-L
415 LET A = RND (3) + 5- M
420 FOR C = 1 TOA
425 PRINT CHRS (128);
430 NEXT C
435 LET B = RND (3) + 2 + M
440 FOR C = 1 TOB
460 PRINT CHRS (9);
465 NEXT C
470 LET D= 15-A-B
475 FOR C = 1 TOD
480 PRINT CHRS (128);
485 NEXT C
490 PRINT
495 NEXT L
RUN this program.
We now have a grey wood surrounded
by a black border. Each time this is run it
Is generated differently. We now add
randomly dispersed clearings where our
hero will find treasures and do battle.
445 LET F = 9
450 LET E = RND(12)
455 IF E = 10 THEN LET F = 0
460 PRINT CHRS (F);
Note that line 460 is replaced. RUN this
part. Now let’s make it into a subroutine
called from a main program.
100 GO SUB 400
299 STOP
497 RETURN
RUN this.
The Jan/Feb 1981 issue of SYNC
describes on p. 23 how to use the memory
address stored in D-FILE to locate the
display file.
600 POKE ( PEEK (16396) + PEEK
(16397) * 256 +01, T
605 RETURN
101 LET Q = 12
102 LET T = 58
103 GO SUB 600
RUN this. The letter U appeared in the
top line of the display. Let’s change this
to place the U at different points. The
28
game area is a matrix of 15 x 10 characters.
but because of the NEWLINE character.
each line is really 16 characters long.
101 INPUT Q
104 GO TO 101
RUN this. The program waits for an
input. Try each of the following.
1(NL)
3(NL)
17(NL)
32(NL) Oops! We destroyed the NEW-
LINE character. Enter two alphabetic
characters to exit with error 2/101.
Delete lines 101. 103. 104.
Now we will develop a subroutine to
allow our hero to move around within the
wood.
900 INPUT A$
901 IF A$ = “0” THEN STOP
905 LET Q = P + 16
910 IF A$ = “N” THEN LET Q = P - 16
915 IF A$ = “E” THEN LET Q =P + 1
920 IF AS = “W” THEN LET Q = P- 1
940 LET T = 58
945 GO SUB 600
970 LET P = Q
975 RETURN
125 GO SUB 900
101 LET P = 152
150 GO TO 125
RUN and enter E.N.W.S to get a string
of U's. Type 0 to exit from line 901.
Now we want to erase the trailing (old)
positions of U to leave only one in the
display.
950 LET T =9
955 LET R = Q
960 LET O = P
965 GO SUB 600
970 LET P = R
RUN this.
Our hero must be confined to the wood
until he has earned the right to move on
to other adventures.
9251FQ (10R Q ) 160 THEN GO TO
973
930 GO SUB 500
935 IFNOT T = 9 THEN GO TO 975
Look in location Q. to which we will
move from the present position P.
500 LET T = PEEK (PEEK (16396) +
PEEK (16397) * 256 + Q)
505 RETURN
RUN and try to move our hero into a
clearing or out of the wood.
Exit with O(NL).
This subroutine searches for a specific
character on a line and replaces it.
1200 LET P =L* 16
1205 FOR C = 1 TO 15
1210LETQ = P + C
1215 GO SUB 500
1220 IF T = S THEN GO TO 1235
1225 NEXT C
1230 RETURN
1235 LET P = Q
1240 LET T = U
1245 GO SUB 600
1255 RETURN
Our hero is fated to be cast randomly
into the wood to begin his journey.
105 LET L = RND (10)
110 LETS =9
115 LET U = 38
120 GO SUB 1200
RUN this.
Now that we have some working sub-
routines we can set them aside and delete
them from memory to make space for
new ones.
We will work with a less fancy wood.
so delete lines 400-497. and substitute:
300 LET F = 9
305 FOR L = 1 TO 10
310 FOR C = 1 TO 15
315 IF RND (10) = 10 THEN LET F = 0
320 PRINT CHRS (F);
325 LET F = 9
330 NEXT C
335 PRINT
340 NEXT L
345 RETURN
For the purpose of checking out the next
subroutines. our hero can begin at the
bottom of the game area. so delete lines
1200-1255.
Simplify the main program to read:
100 GO SUB 300
101 LET P = 152
125 GO SUB 900
150 GO TO 125
299 STOP
RUN this and exit with O(NL).
Our hero cannot enter a clearing in the
wood. but he needs to know when he has
found one. For this we need a search for
a neighboring character routine.
1000 LET O = P - 16
1005 GO SUB 500
1010 IF T = S THEN GO TO 1060
1015 LET Q=P + 16
1020 GO SUB 500
1025 IF T = S THEN GO TO 1060
1030 LETQ =P +1
1035 GO SUB 500
1040 IF T = S THEN GO TO 1060
1045 LET Q=P-1
1050 GO SUB 500
1055 IF T = S THEN GO TO 1060
1060 RETURN
SYNC Magazine
When our hero finds the clearing, we
will replace it with an inverse X.
1300 LET T = 189
1305 GO SUB 600
1310 RETURN
Since a clearing is a blankspace, S = 0.
Add to the main program:
102 LETS = 0
130 GO SUB 1000
135 IF T = S THEN GO SUB 1300
RUN this program and move our hero
around with N, S, E, or W.
We can do something more interesting
when our hero finds a clearing. This routine
POK Es a random number into the clearing
representing gold, which our hero
collects.
1302 LET V = V + X
1303 LET T = X + 28
1305 GO SUB 600
1310 RETURN
104 LET V = 0
901 IF A$ = “0” THEN GO TO 980
980 PRINT “GOLD”, V
985 STOP
As you RUN this and move our hero
around, he collects the gold. When O(NL)
is typed, his treasure is displayed. At this
point we have all the rudiments of an
adventure game. From here we can use
Our imagination to change the options in
subroutine 1300. L]
Are you in
SYNC?
If not,you should be. We would like any
programs, translations of existing pro-
grams, games or tips which you have to
pass on to fellow Sinclair ZX-80 or Micro-
Ace owners. Articles are much more
lively if accompained by photos (black
and white), diagrams, and illustrations. If
you do not have an output printer, please
type program listings and carefully check
them against the listing on the screen.
Sample runs should be included with pro-
grams rather than just a description of
what the program does. Articles should be
typed, double space. Your name and
address, with phone number should be on
first page; all other pages should be num-
bered. All submissions should include re-
turn postage. Payment ranges from $15 to
$40 per printed page.
Please send all submissions to:
SYNC
39 E. Hanover Avenue
Morris Plains, New Jersey 07950
May/June 1981
Sourcebook
of Ideas
Many mathematics ideas can be better illustrated
with a computer than with a text book.
N NS
Se AN
NN
SS >
Z
Š AQ
OR
Creative Computing Pres
Consider Baseball cards. If there are 50
cards in a set, how many packs of bubble
gum must be purchased to obtain a complete
set of players? Many students will guess
over 1 million packs yet on average it’s only
329.
The formula to solve this problem is not
easy. The computer simulation is. Yet you
as a teacher probably don't have time to
devise programs to illustrate concepts like
this.
Between grades 1 and 12 there are 142
mathematical concepts in which the com-
puter can play an important role. Things
like arithmetic practice, X-Y coordinates,
proving geometic theorems, probability,
compounding and computation of pi by
inscribed polygons.
Endorsed by NCTM
The National Council of Teachers of
Mathematics has strongly endorsed the use
of computers in the classroom. Unfortunately
most textbooks have not yet responded to
this endorsement and do not include pro-
grams or computer teaching techniques.
You probably don't have the time to develop
all these ideas either. What to do?
For the past six years, Creative Computing
magazine has been running two or three
articles per issue written by math teachers.
These are classroom proven, tested ideas
complete with flowcharts, programs and
sample runs.
Teachers have been ordering back issues
with those applications for years. However,
many of these issues are now sold out or in
very short supply.
So we took the most popular 134 articles
and applications and reprinted them ina
giant 224-page book called Computers in
Mathematics: A Sourcebook of Ideas.
Ready-to-use-material
This book contains pragmatic, ready to
use, classroom tested ideas on everything
from simply binary counting to advanced
techniques like multiple regression analysis
and differential equations.
The book includes many activities that
don't require a computer. And if you're
considering expanding your computer
facilities, you'll find a section on how to
select a computer complete with an invalu-
able microcomputer comparison chart.
Another section presents over 250
problems, puzzles, and programming ideas,
more than are found in most “problem collec-
tion” books.
Computers in Mathematics: A Sourcebook
of Ideas is edited by David Ahl, one of the
pioneers in computer education and the
founder of Creative Computing.
The book is not cheap. It costs $15.95.
However if you were to order just half of the
back issues from which articles were drawn,
they would cost you over $30.
Satistaction Guaranteed
If you are teaching mathematics in any
grade between 1 and 12, we're convinced
youll find this book of tremendous value. If,
after receiving it and using it for 30 days
you do not agree, you may return it for a full
refund plus your return postage.
To order, send your check for $15.95
plus $1.00 postage and handling to Creative
Computing Press, Morris Plains, NJ 07950.
Visa, MasterCard, and American Express
orders may be called in toll-free to 800-
631-8112 (in NJ 201-540-0445). School
purchase orders should add an additional
$1.00 billing fee for a total of $17.95.
Don't put it off. Order this valuable source-
book today.
creative
computing
Morris Plains, NJ 07950
Toll-free 800-631-8112
(In NJ 201-540-0445)
29
A Trick and a Graphic System
by Keith Comer
The ZX80 version of Basic is missing a
few statements you may used to using.
Getting those graphic characters to do
anything really impressive seems downright
impossible. The potential is there, but
how do you squeeze it out? Using a
simulated DATA statement. I have
developed a graphic system to allow easy
production of graphic displays.
First, let us consider the pseudo-DATA
Statement. Suppose you need the values
6.4.9 and 7 for some obscure task.
Watch:
10 LET A$="6497”
20 LET X=CODE(AS$)-28
30 GOSUB 1000
40 LET AS=TLS(AS)
50 IF A$+*” THEN STOP
60 GOTO 20
Now, line 10 is the “DATA” statement.
The terms are just slammed together in a
string (AS).
Line 20 fetches the ASCII code for the
first character in the string (which is 34)
and by subtracting 28 gets the real number
you want (which is 6).
Line 30 goes to the part of the program
that is to perform that obscure task. The
variable X is holding the value you want.
Line 40 clips off the first data element
in order to get at the next one.
Line 50 checks to see if the string is
empty. in which case we are done and
can STOP.
Line 60 starts the whole thing over again
(in traditional reiterative fashion).
Obviously, if you need data with more
than one digit per entry, you need to trim
the digits off one at a time and reconstruct
the number from those digits. If you needed
27,32, 2, and 23, you would use:
10 LET A$=“27320223”
20 LET X=(CODE(AS$)-28) * 10
30 LET A$=TL5 (A$)
40 LET X = X + CODE(AS$) -28
50 GOSUB 10000
60 LET A$ = TLS (A$)
70 IF A$ = “" then STOP
80 GOTO 20
Notice that there are no commas between
the data elements and that the 2 has to go
in as 02.
=== ee U ll = == ee
Keith Comer, 16889 Nichols St. #d, Huntington
Beach, CA 92647.
30
So how does all this number crunching
help you realize those incredible graphic
displays you have been dreaming about?
Watch again:
10 LET A$= “E£££££££5ESIETE£BB
BBEEBBBBEBBBBEABBBBEEBBBBE£
PBBBEAA3AA4ABBBBAAA£BBBBAA
A3APBBBEAPBBBAAA”
20 LET X= CODE (A$)
30 IF X=12 THEN PRINT
40 IF X=12 THEN GOTO 80
45 IF X Ç 38 THEN GOTO 110
50 IF X < 48 THEN LET X=X-36
60 IF X > 47 THEN LET X=X+80
70 PRINT CHRS(X);
80 LET AS=TLS(AS)
90 IF A$ = “” THEN STOP
100 GOTO 20
110 FOR N=1 TO X-28
120 PRINT “ ”;
130 NEXT N
140 GOTO 80
Line 10 is the data, as before.
Line 20 fetches the first (or next)
character, as before.
Lines 30 and 40 look for the ASCII
code 12, which is the £ symbol. It is used
to effect a line feed. (Imagine a cross
between an “L” and an “F”.) This allows
you to proceed down the page without
typing spaces to the end of each line.
Line 45 checks for an ASCII code which
would indicate a number. The routine at
110 will print that many spaces, up to 9 of
course; remember, only one digit per data
element. This is mainly a convenience,
but I have noticed that many pictures I
have done are mostly spaces.
Line 50 and 60 convert the ASCII codes
of letters from the data line to ASCII
codes of graphic symbols. You can save a
few bytes (and forsake clarity) by using:
50 IF X < 48 THEN LET X= X-116
60 LET X=X +80
Line 70 prints the selected graphic
symbol.
Lines 80, 90, and 100
obvious.
Lines 110 to 140 are the spacing routine
referred to by line 45, a simple FOR-
NEXT loop.
Now the system works like this: Turn
to page 78 in the Z X80 instruction manual
and put the letters A through J next to
graphic symbols 2 through 11 (ASCII).
Put letters M through V next to symbols
130 through 139. The reason that K and L
are skipped is so that K can be converted
to ASCII code 128 which is the inverted
space or a Solid black square.
should be
That completes the program. The system
allows the use of all the graphic symbols
with equal ease, not just the ones on the
keyboard. They are all available with one
keystroke of typing each. The result is
that the screen can be used with the effect
of double the resolution, because symbols
are used that access any quarter, or any
combination of quarters, of each graphic
block.
All you do to construct your picture is
to draw what you want on graph paper.
Your field is 64 squares wide and 46 squares
high.
So get your drawing the way you want
it. It helps to fill in the squares of the
graph paper “all or nothing” (Figure 1).
Then divide the picture up into “four
squares.” This is where the resolution gets
halved into the 32 by 23 screen (Figure
2). I just draw over the original lines of
the graph paper with ink of another color,
every other line. Then convert each “four
square” to its corresponding letter from
the graphic symbol chart you have just
written (Figure 3). Remember to use the
£ sign when you get to the end of a line.
Now just string the letters together into a
data statement for line 10 like this:
10 LET A$=“GNE£ACALDN”
The advantage of this system is that
the program itself is fairly short so you
can store a rather elaborate (and/or big)
picture in line 10. It cannot hold enough
characters to do a full screen (at least not
with 1K) but it will hold more than 200.
Since it is storing them as one byte each,
I doubt that there is a way to store it any
tighter. When you save a program, you
have also stored the picture.
A few examples are probably in order:
INVADERS: “FBKKBE£KROROK£NK
ROKN£DPDCOC”
“IBOKPB£MKNKNKA£D
OKNKRC£BNININB”
“FKEOP£KKKKKA£OKK
KKC£1IQKKC£20C”
“2BRNPE£10C3QE£MC5SQ£
R2CICIDA£AIEICIEIA£
Q1S2FCMC£DP1NNCFR£
IDPEIBR£3INNC”
More extreme is the
CASTLE: —“£78F£78M£77FKP£65M1F
KKKP£650E1lM1M£550KK
EMIM6A£65AA1M1MBE3
FP£65AA101MR40KE£65
AAOC1M40KKKE£6BBB
2ANC2M5A1A£5FA1M2A
3KM4FA 1P£502M2A3KM
4M2M£4FA2DNNC4M4R2
DA£L4MBBE8MBBBBA3P£
7A1K20NNP7K1M£7A30C
2DP6K 1M£7A3A4M8M£7
A3A4M8M£7A3A4M8M£7
PBBBA4MBBBBBBBBO”
HEART:
FACE:
SYNC Magazine
If you want to do wider spacing, you
can use this routine to get two digit’s
worth of spaces. Eliminate lines 30 and 40
if you want to save space; just space all
the way to the end of each line. Replace
lines 110 to 140 with:
110 LET Z =(X-28) * 10
120 LET A$ = TLS (A$)
130 LET Z = Z +(CODE (A$) -28)
140 FOR X = 1 TO Z
150 PRINT *”;
160 NEXT X
170 GOTO 80
Figure 1.
May/June 1981
Using this modification you can “draw”
a U.S. MAP “3232323226E12PRNNNNN
NNNQCO060K 11MCO9DNRSOBROC 1101
2ARA01OSO12A12PAPRCM13A17M13
Q17R13ME16A 14PE140C15PE13A170
BBBEO3FBRNNPA21QBEFR04DK23PR
06QA22DA” O
Figure 2.
Sample Output “Castle”
Figure 3.
31
Gauntlet
Ken Berggren
REM SPACE
PRINT "HOW MANY MONSTERS? (1-4)"
INPUT N
LET C=O
LET D=0
CLS
IF N>4THEN GO TO 70
DIM 5(N)
FOR L=1 TO 6
FOR K=1 TO 20
PRINT CHR$(-(RND(8)>5)*9);
NEXT K
PRINT
NEXT L
FOR J=1 TO N
LET B(J)=RND(L-1)*K-2-(K/5)*(J-1)
NEXT J
LET G=K*3
GO SUB 900
GO TO 430
LET S=G
INPUT C$
FOR J=1 TO 2
LET C=CODE (C$)
IF C=58 THEN LET S=S-K
IF C=41 OR S<O THEN LET S=S+K
IF C=43 OR C=39 AND S=(S/K)*K THEN LET
IF C=39 THEN LET S=S-1
IF S>(L-1)*K THEN LET S=S-K
IF S+1=((S+1)/K)*K THEN GO TO 700
LET C$=TL$(C$)
NEXT J
GO SUB900
IF PEEK(S+D)=61 THEN GO TO GOO
POKE D+G,0
IF PEEK(S+D)=0 THEN LET G=S
POKE D+G,52
FOR J=1 TO N
POKE D+B(J),0
LET C=K
IF B(J)/C=G/C THEN LET C=1
IF B(J)-G<O THEN LET C=-C
IF PEEK(D+B(J)-C)=9 AND RND (9)>4 THEN
LET B(J)=B(J)-C
IF PEEK(D+B(J))=52 THEN GO TO 600
IF RND(9)>7 THEN GO TO 460
POKE D+B(J),61
NEXT J
GO TO 280
600
610
700
800
810
840
850
900
910
PRINT "GOTCHA"
GO TO 800
PRINT "YOU ARE FREE"
GO SUB 900
POKE D+G,20
INPUT C$
IF C$="" THEN RUN
LET D=USR(16427)
RETURN
Subroutine Loader
100 POKE 16403,100
110 FOR J=1 TO 5
120 INPUT C
130 POKE 16426+J,C
140 PRINT J,C
150 NEXT J
S=5+1
DECIMAL LISTING
O (N P
LET
42
12
64
35
201
C=0
Gauntlet is a game played on a rectangle
19 spaces by 6 spaces. The object is to
run a gauntlet of random obstacles and
monsters, beginning on the left side and
crossing the rectangle. You win when you
have successfully moved your marker to
the right side.
First you must decide how many
monsters you think you can handle, from
one to four. Then .. . the screen is randomly
sprinkled with blocks. You (0) start at the
extreme left. The monsters (X) are between
you and your goal, the extreme right.
You move by entering the letters U,D,F
or B. For example, to move down and
back diagonally you would enter DB or
BD. A single letter moves you one space
and a Newline alone maintains your
position. It is possible to jump an obstacle
but if you try to land on one you will not
move at all. The monsters frequently blast
through the barriers and sometimes that
can help you.
The monsters drool green drool, never
bathe and have very bad breath. They
are also lazy. Except when angry they
move only one space at a time. But for all
their faults these guys are not dumb. They
are very cautious and try to get in front of
you before they advance.
When the game is over a NEWLINE
will run it again. Any key before the
NEWLINE will stop it.
Here are the major sections of the pro-
gram:
Line 1 is a machine language routine.
Lines 70-120 set the number of monsters.
Lines 130-210 set the starting positions.
Lines 280-430 move the man.
Lines 440-530 move the monsters.
Lines 600-850 end the game or start
another.
Lines 900-910 a routine to call the
routine.
The machine language routine finds the
first character in the display file. It saves
Ken Berggren, 104 Ridgeway Ave., Louisville.
KY 40207.
SYNC Magazine
-å
about ten bytes over PEEKing and, with
only 1K, every little byte counts.
To load the routine, enter REM and
five spaces. Then type in the “loader
program” and run it. Enter the five numbers
from the “decimal listing” and double check
them when you are through. Then type in
the main program. You will find that
various letters appear around the place
newlines are entered. This can be ignored.
The condition will disappear when the
program lines replace the subroutine
loader.
Some of the values for the routine are
not character codes, and they do strange
things when the ZX80 tries to put them
on the screen. Some codes will crash a
program. To play it safe push the REM
statement off the screen with more program
lines or use POKE 16403,100. Then do
not use LIST without a line number, at
least not until you have the program on
tape. I do not like that, but I have not
found another way to protect a routine
and still be able to save it with a program.
Any suggestions?
Here are some ways to tailor the program
to your own tastes. The TO value in line
140 determines the length of the lines
that form the gauntlet. The TO value in
line 130 determines the number of lines
or the height of the gauntlet. You can
change the shape of the display by adjusting
those values. However, in 1K this program
allows only about 125 characters in the
display file. The size of the display file
will roughly equal the length of a line plus
one, times the number of lines. If you get
an error number 4 or 5, it is probably
because your display file is too large. To
adjust your starting position, change the
constant in line 250. A zero starts you on
the top line. Adding one to the constant
drops you down one line. Be sure that
this constant is less than the height of the
gauntlet! Finally, if you want to be able to
move farther in each turn, increase the
TO value in line 300. A three lets you
move like a knight in chess. More than
three and you are practically unbeatable.
D
May/June 1981
SYNC
Reader Survey
In our first issue of SYNC we asked
you to tell us about yourselves so that we
will be able to make SYNC the magazine
you want. Your response to our survey
has been very positive and enthusiastic.
This is what you told us.
First. you told us that you did not like
to have surveys printed on the other side
of pages you want to keep!
Next. we found that for four out of five
of you the ZX80 (or MicroAce) is the
only computer you own. About half of
you are having your first computer
experience with the ZX80. Many admitted
yielding to the desire to have a personal
computer because of the low price. This
enabled you to break into the computer
field without making a heavy investment
in equipment before you were sure that
computers would be a part of your personal
activities. The other half have access toa
computer at work or at school.
Topping the request list for SYNC
content is a strong desire for programming
tips (four out of five). So if you have a
program to submit. remember that your
fellow SYNC readers are clearly having
great fun with their ZX80s. but they are
also very eager to learn how to get the
most out of their machine. They see every
program as a learning opportunity. You
will have their deepest appreciation if you
share what you have learned about pro-
gramming through notes in which you
point out special tips and explain the main
elements in your program.
A close second in requests is for new
product information. While we make every
effort to find out about new products. our
advertisers and readers are the main
sources of information. If you have found
a new product that helps you with your
Z X80. please tell the seller. distributor.
or manufacturer about SYNC so that we
can get the news around.
About 75% of our readers want to know
more about interfacing techniques and to
have software tutorials. Hardware tutorials.
graphics software. device control. hardware
evaluations. and software evaluations are
in the “very much” column for about 60%.
Educational. mathematics. and business
software are lower on the list with about
40%. While games make the “very much `
column for 40%. “very much" and “okay”
together include 90% of our readers.
Fiction. puzzles. and advertising came
in at the bottom of your list for highest
choice. but near the top for your second
choice.
For most of our readers additional
memory tops the list of planned equipment
purchases for 90% with disk and printer
capabilities next for 60%. Creative Com-
puting and Byte are the most widely read
computer magazines other than SYNC.
The age distribution checks show that
14% are under 20; 27%. 21-30; 31%. 31-
40: 13%. 41-50; 13%. 51-60; 1% over 60.
Males outnumber females 37 to 1.
Of course. all these are averages based
on our survey compilations. It is clear
from not only the survey. but also your
letters that you have an amazing variety
of interests involving your ZX80. Even
though the survey summary may not show
that other readers have the same special
interests as you (and your comments
mentioned a number of them). we invite
you to share what you find with us. Your
fellow readers are always looking for new
things to do with their ZX80s. You may
open up whole new interests. possibilities.
and challenges. O
Try This
This column will feature short programs
to show off your ZX80, impress your family
and friends, and tickle your imagination
when SYNC arrives at your place. We
invite your contributions. Address them
to SYNC, 39 E. Hanover Ave., Morris
Plains, NJ 07950.
10 PRINT CHR$(RND(3));
20 GOTO 10
Press RUN and NEWLINE. Disregard the
error code which will be displayed. After
you have fully absorbed the results of the
routine, press any key and then RUN and
NEWLINE again. Our thanks to:
Nigel Searle
Sinclair Research Ltd.
50 Staniford St.
Boston, MA 02114 O
33
Forest Treasure x
Paul Frahm
10 FOR I=1 TO 20
20 FOR J=} TO ZO
30 PRINT ©" "3
40 NEXT j
50 PRINT
60 NEXT I
70 DIM AĖ(50)
ivea poose joe
ASO
wd AC
34
LES Eee RD ii)
|
ET Tee (617)
Ia A i ;
ie oe Š met bee Ú 7 $e
EAT Piss REDD 0.5 72
I w" bites oe oe pad ak _ g eN
“CEI REE OL Ee RA ACTORA PEER GL em BY Z yt, SO
t t .... Ess `
EOR el YO í
IE ACID =N THEN GOTO 460
NEXT |
ao
.
`
H
ares
—
—
ya
°.
-
oe
mm
+
+
:
-
=
-F
e.
were
te
: :
sora tes
nm
233
"3 8
one
_
`
-
ae
1
e
pore
—
—
>
Ae
me.
a
f
IF BID =N THEN GOTO 400
a
ove
E
ss
:
Saik
t
IE Afs U" AND Epl THEN LET Beie]
GOTO 170
LET Pam PRMD (F) =H
I I
Es eR ED (7) 3
GOTO 10
PORE FEE CLOs96) +A XFEER (16397347, 146
PRINT "YOU HAVE TAKEN THE TREASURE"
CV +
GOTO E
PORE PEER (16396) +25OPEER (16397) +H, 19
PRINT "THE MONSTER HAS KILLED you"
GOTO 500
PRINT "THE MONSTER HAS STOLEN THE TREASURE Z
PRINT "ANOTHER GAME? ¿YN
NEUT EB
IF Bé="Y" THEN RUN
LIS
“Forest Treasure” is based upon “Ran-
dom Graphics” by Gary McGath in the
Jan/Feb 1981 issue of SYNC. You are
riding through a forest, seeking the gold
treasure. You are represented by “£” and
the treasure is a blank space. During your
ride you may encounter enchanted (invi-
sible) walls. When touched, these walls
will alter your path, sending you in different
directions (sometimes even leaping over
the wall!) You may also encounter a
monster, represented by the “M” square.
This monster has the magical ability to
duplicate itself in its search for you. If
you run into a monster, or if the monster
lands on you, or if the monster steals the
treasure, you lose. If you get the treasure,
you win. You control your movements by
entering U, D, R, or Lfor up, down, right,
or left, and then pressing NEWLINE.
Entering S will exit you from the pro-
gram.
Paul Frahm, 21123 Dettmering, Matteson, IL
60443.
SYNC Magazine
Translating From Other Basics
David Lubar
A command found in many versions of
Basic, but not in the Sinclair, is ON ...
GOTO. This is usually found in the form
ON X GOTO 110, 120, 130. The command
makes a jump depending on the value of
X. In this example, if X is 1. the program
will jump to 110, if X is 2, control goes to
line 120. and if X is 3. the program
continues at 130. If X is outside the
expected values, the program will fall
through to the next line. In other words,
for any value N of X, the program will
jump to the Nth line listed in the expres-
sion.
The simplest way to replace this com-
mand is to use a series of IF... THEN
statements. The above example is equiva-
lent to
10 IF X = 1 THEN GOTO 110
20 IF X = 2 THEN GOTO 120
30 IF X = 3 THEN GOTO 130
If there are many numbers involved,
this process can get tedious. Fortunately,
there are other ways to Sync the cat. The
Sinclair allows for the use of expressions
with a computed GOTO. For example,
the above command can be replaced with
GOTO 100 + 10 * X. In many cases, you
can renumber a translation so the lines
used in ON...GOTO will be part of a
simple progression. But there are cases
where the progression is not simple.
Take a line such as ON X GOTO 90.
450. 376, 10. Rather than look for an
algorithm that will produce the correct
number, it is easier to set up an expression.
Using the logical capabilities of the Sinclair,
we can produce an expression that has
the desired sum for any X value. What we
need is a series where the sum of each
member is zero unless it matches the
desired X value. When there is a match,
the sum will be the value of the desired
line for the jump. The above line can be
replaced with GOTO ABS ( (X=1) * 90
+ (X=2) * 450 + (X=3) * 376 + (X=4) *
10). This expression will produce the
desired results. Those parts of the expres-
sion where the equality fails will produce
a value of 0. When there is a match, the
result will be correct except for having a
negative value. This is caused by the use
in the Sinclair of -1 to signify true. The
` ABS takes care of that.
Another common Basic operation is
the LEN function. The expression LET X
= LEN (A$) will give X a value equal to
the number of characters in A$. If A$ is
HELLO, then X will be 5. This expression
has many uses. Once you know the length
of a string, you can manipulate it in various
fashions. While the Sinclair does not have
the LEN function, it does have TL$ which
removes the first character of a string.
Using TL$ in a loop. the length of any
string variable can be determined. The
basic approach is to keep chopping off
the first character of a string until there is
nothing left. If you count how many
beheadings have occurred, you will know
the length of the string. Here's one way to
do it.
10 INPUT A$
20 LET L = 0
30 LET B$ = A$
40 IF B$ = *” THEN GOTO 100
50 LET B$ = TLS (B$)
60 LETL=L+1
70 GOTO 40
100 PRINT A$; “HAS A LENGTH OF”; L
The program is fairly straightforward.
Since TL$ destroys the variable, A$ is
preserved by using B$ for the operation.
When B$ has only one character left, the
result of TL$ (B$) will produce a null
string (represented in line 50 as a pair of
quotes with nothing between them).
That’s all for now. If you have any
specific functions you would like to see
covered here, drop me a line.
puzzle answers
A Building Problem:
A
May/June 1981
Lucky Number: Multiply the selected num-
ber by 9, and use the product as the multiplier
for the larger number. It will be found that the
results will be respectively as under:
12345679 x 9= 111 111 1H
” x 18 = 222 222 222
” x 27 = 333 333 333
” x 36 = 444 444 444
” x 45 = 555 555 555
” x 54 = 666 666 666
= x 63 = 777 777 777
W x 72 = 888 888 888
” x 81 = 999 999 999
It will be observed that the result is in each case
the “lucky” number, nine times repeated.
The Puffer-Belly Problem: The speed of
the two trains in relation to one another is
45 + 36 = 81 miles per hour. This equates out to:
le ee 118.8 feet per second
The length, then, of the Dover train is 6x 118.8 =
712.8 feet.
A Seven-Letter Charade: The answer is
the word ENGLAND. The other words are
END, GLAD, ANGEL, LAND.
The Three Jealous Husbands: For the
sake of clearness, we will designate the three
husbands A, B, and C, and their wives a, b, and
c, respectively. The passage may then be made
to the satisfaction of the husbands in the follow-
ing order:
l. a and b cross over, and b brings back the
boat.
2. b and c cross over, c returning alone.
3. c lands and remains with her husband,
whileA and B cross over. A lands, Band b
return to the starting point.
4. Band C cross over, leaving b and c at the
Starting point.
5. a takes back the boat and b crosses with
her.
6. a lands and b goes back for c.
The Four Jealous Husbands: Distin-
guishing the four husbands as 4, B, C, and D,
and the four wives as a, b, c, and d, respectively,
the answer to this version is:
l. a, b, and ccross over; c brings back the boat.
2. c and d cross over; d brings back the boat.
3. A, B, andC cross over; C and c bring back
the boat.
4. C, D, and c cross over.
5. c takes back the boat and fetches d.
35
Sinclair ZX80
SK Basic ROM and
16K-Byte RAM Pack
Specifications
The 8K Basic ROM and the 16K-Byte RAM pack are now
available from Sinclair Research (see Resources column).
The specifications for these units are as follows.
ZX80 8K BASIC ROM
The 8K Basic ROM for the ZX80 is designed for high-level,
full-facility computing. The chip—a drop-in replacement for
the existing 4K Basic ROM—comes with a new keyboard
template and a supplementary operating manual.
Key features of the new 8K BASIC ROM include -
e fully floating-point arithmetic to 9-digit accuracy.
e logs, trig, and their inverse functions,
e graph plotting facility,
e animated displays using PAUSE n,
e full set of string-handling facilities.
e n dimensional arrays,
e n dimensional string arrays,
e cassette LOAD and SAVE with named programs.
Full specification follows.
Numbers
Stored in 5 bytes in floating point binary form giving 9 x
10" to 1.1 x 10% accurate to 9 1/2 decimal digits.
Variables
Numeric: Any letter, followed by alphanumerics.
String: A$ - Z$.
FOR-NEXT: A - Z.
Numeric arrays: A - Z.
String arrays: A$ - Z$.
Arrays
Numeric arrays: ‘n’ dimension, subscript range starts
at 0.
‘n’ dimension, subscript range starts
at 0. If the last subscript is omitted it’s
treated as a fixed length string.
String arrays:
(more correctly,
character arrays)
Strings
Undimensioned strings can be any length.
Can be concatenated (+).
Substring eg B$ = A$ (2 TO 4).
Literal strings eg C$ = “QWERTY”.
Statements available
In this list.
v represents a variable.
xyz represent numerical expressions.
m.n represent numerical expressions that
are rounded to the nearest integer.
e represents an expression.
f represents a string valued expression.
S represents a statement.
Note that arbitrary expressions are allowed everywhere (except
for the line number at the beginning of a statement). Thus
“GOTO LN A ** 2” is valid.
READ RESTORE REM
05 06 Ge G5 M8 G5 (8 tg tg €
al CODE a?
TT WE, RETO
GE
SIN
NEW
Sa a
Ags &
aa ARCCOS ae
CLEAR
EDIT AND THEN TO <J ZON r GRAPHICS RUBOUT
B
INPUT POKE PRINT
“a LIST
FUNCTION
SCR a “eG ake BREAK
co ts rs ra rü rs ru
> f
TE EE P
TU
Sinclair ZX80 8K BASIC
Keyboard template for new 8K BASIC ROM.
36
SYNC Magazine
CLEAR
Deletes all variables, freeing the space
they occupied.
CLS (Clear Screen) deletes all PRINT output
| in the display file.
l PAUSE n Sends the display file to the TV screen
CONTINUE Resumes execution of the last run pro- for n trames | s iames per second) or
gram—repeats the last statement if an
until a key is pressed.
error was detected, otherwise restarts at
the areca Note that a command PLOT m,n Sends the PLOT position (a system vari-
(immediate execution) statement counts : .
able) to (m.n) and blacks in that pixel.
as a praat ano So desitoys Thë we Also changes the PRINT position.
entry data.
DATA... Standard, but no unquoted strings. Poeemi AS AMA,
PRINT... Mostly standard. The display file has 22
DIM... Deletes any array or string with the same lines of 32 characters each (2 zones of 16
name, sets up space for a new array in characters) and when this is filled it is
the usual way, and initialises its element sent to the TV with error 5. CONTINUE
to 0 or “ ”. carries on with the program with no loss
of data.
DRAW m.n Let (u,v) be the current PLOT (q.v.) posi-
tion. Draws a line as straight as possible PRINT AT m.n Moves the PRINT position to line m,
from (u,v) to (u + m. v + n) by blacking character n.
in pixels (quarter character squares).
Changes the PLOT and PRINT posi- PRINT TO de Alters the PRINT format. Here d is an
tions. optional digit between 1 and 8 (default
f value 8) and e is an optional letter E.
FORA TOB Generally standard, but entirely From now until another such formatting
STEP C dynamic in its action. Item, numbers will be printed to d signi-
f ficant digits. and if E is present they will
NEXT The effect of a NEXT statement is to always be printed using scientific nota-
look up the corresponding FOR-vari- tion.
able, increment its value by the STEP,
check whether the limit is exceeded and On switch-on, the format is initialised so
if not jump to the looping line number. that numbers are printed to 8 digits and
f scientific notation is avoided where pos-
GOSUBn Transfers control to BASIC subroutine. sible. Note that PRINT does not change
the PLOT position.
GOTOn Jumps to line n.
RANDOMIZE Standard
IFx THENs If x is true (defined to mean greater in
absolute value then 27”) then s is RANDOMIZE n Ifnis given this is made the value of the
executed. The standard values of true seed of the random number generator.
and false as yielded by relational opera-
tors are 1 and 0. READ v Reads v from a data statement.
INPUT v Outputs the display file to the screen REM... Remember, for program comments.
with no special INPUT prompt; the rest
is standard. Cannot be used as a com- RESTORE Reinitialises the data (so it can be read
mand (immediate execution) statement. again).
LIST Lists from start of program. RETURN Return from subroutine.
LIST n Lists program starting at line n with pro- RUN RUNs the BASIC program.
gram cursor pointing at line n.
RUN n CLEAR followed by GOTO n.
LOAD f Looks for a program called f on tape and
loads it and its variables. SAVE f Saves program and variables on tape
and calls it f.
NEW Default n = 0. Erases BASIC program
and variables. SCROLL Scrolls display file up one line, losing
top line and making space at bottom.
NEW n n is used to alter a system variable
known as RAM TOP, which is the STOP
address of a byte in RAM. The area
from RAM TOP on is untouched by the UNDRAW m,n These are like DRAW and PLOT, but
BASIC system, and POKEd programs UNPLOT m,n blank out pixels instead of blacking them
can be left there in safety.
In.
May/June 1981 ar
— LL. LLCLCC——s .a—————————— o y € € €O€ H
Functions
ABS
ARCOS
ARCSIN
ARCTAN
CHR$
CODE
COS
BAP
INKEY $
INT
LEN
LN
NOT
PEEK
PI
RND
SGN
SIN
SORT
STR$
TAN
USR
38
Type of Operand
number
number
number
number
number
number
number
number
number
number
number
string
number
number
number
number
number
number
number
number
number
Result
Negate
Absolute magnitude
In Radians
In Radians
In Radians
The character whose code
IS X.
The code of the first char-
acter is x (or 0 if x is empty)
In radians.
ex,
Reads the keyboard. The
result is a character repre-
senting the key pressed,
otherwise the empty string.
Integer.
The length of x.
Natural log
Exclusive—ORs the first
byte of x with 113, so that
NOT 0 = 1, NOT 1 -0.
Unlike the other functions.
NOT has binding power 4
(between AND and the rela-
tional operators) NOT A =
B has the same value as
NOT (A=B) (and A < >B).
The value of the byte in
store whose address is x.
TT (3.1415927)
A random number between
O and 1.
Yields -1,0, +1.
In Radians.
Square root.
The string of characters that
would appear on the screen
if x were PRINTed.
In Radians.
Converts x to an address in
store and calls that address
as a machine code sub-
routine. On return. the
result is the contents of the
hl register pair.
Functions Type of Operand Result
VAL string Evaluates x as a numerical
expression (x must not con-
tain the quote image char-
acter).
AND Logical AND
OR Logical OR
Relational operators
= Equal
> Greater than
< Less than
<= Less than or equal to
=> Greater than or equal to
<> Not equal
Graphics
All characters, their reverses, and all graphics can be entered
directly from the keyboard.
ZX80 16K-BYTE RAM PACK
The complete module is designed to provide massive add-
on memory capacity.
The 16K-BYTE RAM pack can be used for program storage
or as a database. Yet it costs up to half the price of competitive
additional memory.
Measuring approximately 3” x 3” x 1.25” the RAM pack
plugs into the existing expansion port on the rear of the
Sinclair ZX80 via an edge connector. No additional power
supply is needed. L]
@Creative Computing
“This one is called ‘Kafka’. It is programmed to try to present the user
from figuring out how to play it.”
SYNC Magazine
David Ahl, Founder and
Publisher of Creative Computing
You might think the term "creative com-
puting’ is a contradiction. How can some-
thing as precise and logical as electronic
computing possibly be creative? We think
it can be. Consider the way computers are
being used to create special effects in
movies—image generation, coloring and
computer-driven cameras and props. Oran
electronic “sketchpad” for your home
computer that adds animation, coloring
and shading at your direction. How about a
computer simulation of an invasion of killer
bees with you trying to find a way of keep-
ing them under control?
Beyond Our Dreams
Computers are not creative per se. But
the way in which they are used can be
highly creative and imaginative. Five years
ago when Creative Computing magazine
first billed itself as “The number 1 maga-
zine of computer applications and soft-
ware, we had no idea how far that idea
would take us. Today, these applications
are becoming so broad, so all
encompassing that the computer field will
soon include virtually everything]
In light of this generality, we take “appli-
cation to mean whatever can be done with
computers, ought to be done with comput-
ers or might be done with computers. That
is the meat of Creative Computing.
Alvin Toffler, author of Future Shock and
The Third Wave says, | read Creative Com-
puting not only for information about how
to make the most of my own equipment but
to keep an eye on how the whole field is
emerging.
Creative Computing, the company as
well as the magazine, is uniquely light-
hearted but also seriously interested in all
aspects of computing. Ours is the maga-
zine of software, graphics, games and sim-
ulations for beginners and relaxing profes-
sionals. We try to present the new and im-
portant ideas of the field in a way thata 14-
year old or a Cobol programmer can under-
stand them. Things like text editing. social
May/June 1981
A REMARKABLE MAGAZINE
Greative
GOlepatirg
“The beat covered by Creative Computing
is one of the most important, explosive and
fast-changing.” — Alvin Toffler
simulations, control of household devices,
animation and graphics, and communica-
tions networks.
Understandable Yet Challenging
As the premier magazine for beginners, it
is Our solemn responsibility to make what
we publish comprehensible to the new-
comer. That does not mean easy; our
readers like to be challenged. It means
providing the reader who has no prepar-
ation with every possible means to seize
the subject matter and make it his own.
However, we don't want the experts in
Our audience to be bored. So we try to
publish articles of interest to beginners and
experts at the same time. Ideally, we would
like every piece to have instructional or
informative content—and some depth—
even when communicated humorously or
playfully. Thus, our favorite kind of piece is
acessible to the beginner, theoretically
non-trivial, interesting on more than one
level, and perhaps even humorous.
David Gerrold of Star Trek fame says,
“Creative Computing with its unpreten-
tious, down-to-earth lucidity encourages
the computer user to have fun. Creative
Computing makes it possible for me to
learn basic programming skills and use the
computer better than any other source.
Hard-hitting Evaluations
At Creative Computing we obtain new
computer systems, peripherals, and soft-
ware as soon as they are announced. We
put them through their paces in our Soft-
ware Development Center and also in the
environment for which they are intended —
home, business, laboratory, or school.
Our evaluations are unbiased and accur-
ate. We compared word processing printers
and found two losers among highly pro-
moted makes. Conversely, we found one
computer had far more than its advertised
capability. Of 16 educational packages,
only seven offered solid ¡earning value.
When we say unbiased reviews we mean
it. More than once, our honesty has cost us
an advertiser—temporarily. But we feel
that our first obligation is to our readers and
that editorial excellence and integrity are
our highest goals.
Karl Zinn at the University of Michigan
feels we are meeting these goals when he
writes. “Creative Computing consistently
provides value in articles, product reviews
and systems comparisons...inamagazine
that is fun to read.”
Order Today
To order your subscription to Creative
Computing send payment to the appropri-
ate address below. Customers in the
continental U.S. may call toll-free to
charge a subscription to Visa, MasterCard
or American Express.
Canada and
Term USA Foreign Surface Foreign Air
l year $20 $29o0r £12.50 $500r£ 21
2 years $37 $550r £24.00 $970r £ 41
3 years $53 $800r £3450 $1430rf 61
We guarantee your satisfaction or we
will refund your entire subscription price.
Join over 80,000 subscribers like Ann
Lewin, Director of the Capital Children's
Museum who says, “| am very much im-
pressed with Creative Computing. It is
helping to demystify the computer. Its arti-
cles are helpfu!, humorous and humane.
The world needs Creative Computing.”
creative
GOlepatirg
P.O. Box 789-M
Morristown, NJ 07960
Toll-free 800-631-8112
(In NJ 201-540-0445)
27 Andrew Close, Stoke Golding
Nuneaton CV13 6EL, England
39
Key Click Generator
by Matthew J. Johnson
This simple circuit will produce an
audible tone whenever the ZX80 screen
is blanked, yielding a click to indicate
key closure, or a steady tone during
processing.
Examination of the “SYNC” line (IC
19—PIN 5) with an oscilloscope reveals
three constituent signals: Line Sync
(denoted LS); Frame Sync (FS); and
Keyboard (KBD). These signals are low
assertion, as indicated, and have period
and repetition rates as follows:
Signal Period Rep. Rate
LS 6us 58us
PS 380us 18ms
BD 6ms N/A
The time constant of the RC low pass
filter was chosen to allow the second gate
to switch only on signals long with respect
to FS, i.e.. KBD. When SYNC returns
high. the first gate sinks the discharge
current of the capacitor via the Germanium
diode. resetting the circuit. Germanium
is used here to insure that the minimum
negative-going threshold voltage
(V< Ç 0.6V) of the second gate is reached.
turning off the buzzer. The Schmitt-trigger
was chosen for its high positive-going
threshold, enabling a less critical circuit
design than would be possible using
standard TTL.
The buzzer (a piezoelectric job from
Radio Shack #273-064) drive circuit is
taken directly from the blister pack except
for the diode added to PIN 8 to clamp
positive oscillations to the five volt rail.
Circuit Diagram for the Key click Generator
1/6-74LS 14
6
O
JT.
IK5 IN
lu F
40
1/6-74LS14
A 74LS121 one-shot could be used
instead of the 74LS14 to eliminate the
steady tone during processing. but I prefer
having the sound as an indication of
processing activity.
The Schmitt-trigger was “piggy-backed”
on IC 19, picking up power and the
common (PIN 5) SYNC signal with a dab
of solder. I used that “double sided stick
‘em stuff” intended for wall hangings to
mount the buzzer across two other IC’s.
The balance of the circuit was “sky-wired”
and the entire modification was neatly
fitted within the standard ZX80 case. so
as not to obtrude in an obvious manner.
A bit of insulating tape may be needed on
the inside of the cover to prevent shorts.
The audio feedback has made life with
the ZX80 passive keyboard enjoyable and
has freed my attention to concentrate on
what—as opposed to how—I am
typing. E
Matthew J. Johnson, 92 Devir St.. Malden. MA
02148.
A
[TJ
O
YAZZNA
General-Purpose
NPN transistor
SYNC Magazine
aye
Can criminals be caught b
Are we ali part of a larger o
Skillfully drawn illustrations
Burchenal Green, is a beauti
PO. Box 789-M, Morristown,
American Express orders are
Only Fiction .. .
or is if?
Tales of the Marvelous Machine:
35 Stories of Computing
A robot friend. A computer God. Artificial intelligence challenging
human intelligence in a life and death struggle. A detective solving a
computer murder. Computers tricking people or people tricking
people with computers. A computer with a soul. Or power. A lonely
computer. Or one in love with its operator.
In thirty-five wonderful stories about computers, authors such as
Frederick Pohl, Charles Mosmann, MV. Mathews, Carol Cail, and
George Chesbro depict a life in which computers affect the way
people live, think, and relate to each other. Interested in what the
effect of computer saturation might be? Only fiction can so
wonderously dramatize future life.
The book is fun, and will provide wonderful hours of
entertainment. For the reader interested in a structured approach
to understanding the potential roles of the computer, or wanting
quickly to locate stories that support or challenge his viewpoint, a
multiple table of contents is provided. This lists the stories in
fourteen different categories.
For example, a list of stories in which the computer takes on the
attributes of a human separates them from those in which the
computer is only an intelligent machine. The stories are categorized
by whether they clarify, improve, or worsen the human lot. Stories
in which the computers have capabilities available today are
separated from those in which the capabilities could be available
in the future. There is a listing of the wildly whimsical stories and
those in which the computer is utilized in a unique fashion.
y computer? Does computer crime pay? Do computers fall in love?
rganic computer? Here are 35 tantalizing tales that will open your
eyes to a new perspective Of computers.
augment the stories, giving glimpses of scenes as envisioned by 20
talented artists. This artwork adds another dimension to the text.
Tales of the Marvelous Machines: 35 Stories of Computing, edited by Robert Taylor and
ful big 8%” x 11” sofrtbound anthology of 272 pages. 12B
It is available for $7.95 plus $2.00 shipping and handling per order from Creative Computing,
NJ 07960. NJ residents add 5% sales tax. Visa, MasterCard and
welcome. For faster service, call in your bank card order toll free
to 800-631-8112 Cin NJ call 201-540-0445). Or use the handy order form bound into this magazine.
creative compatirg press
The ZX80 Keyboar dl James H. Parsons
The ZX80's keyboard is of the simple
membrane type which is matrix scanned
to read a key. The principle behind a
membrane keyboard is relatively simple
and is illustrated below in Figure 1. The
base layer is a printed circuit board
which has a matrix of circular contacts,
like those shown in Figure 2, laid out in a
grid. Each contact has two traces running
from it.
The top layer of the system is the flexi-
ble keyboard template. Located above
each contact on the base layer is a small,
circular contact. When a key is pressed,
the contact on the bottom side of the
template presses down on its respective
keyboard contact, creating a conductive
path, and thus closing the switch.
The process by which a key closure is
located is called matrix scanning, and it
works as follows. As you will note by
looking at the schematic diagram of the
keyboard in Figure 3, the rows of the
keyboard are connected to the anodes of
a group of diodes. The cathodes of the
diodes are connected to the higher eight
address lines. The columns of the key-
board are connected to the inputs of
IC10. a 74LS365 tri-state bus driver. The
diodes are used to inhibit sinking of the
address lines by the pull-up resistors
(R13-R17). The resistors are used just on
good design principle and do not make
any major functional difference in the
machine; in fact, the system works with-
out them.
To scan for a key, sequence through
each address line. setting it low and all
other high. Read the column data from
ICIO. When an address line is low, its
respective diode will allow a logic 0 to
pass through; when an address line is
high, its respective diode will create an
output similar to that of a tri-stated out-
put.
James H. Parsons, 1921 Flintlock Terrace West.
Colorado Springs, CO 80918.
42
Adhesive
Conductive Material
Underside
of keyboard
template
Keyboard Template
A | e PC Board
pe a À
Figure 1.
When a key closure is made. either a
low signal or a tri-state signal is sent to
the input of IC10. IC10, being a standard
74LSxx gate, has internal pull-up resistors
on its inputs. A tri-state type signal pre-
sented as input to IC10 will, therefore.
allow the pull-up resistor to pull-up the
Figure 2.
input line and turn the input transistor
on, thus causing a logic 1 to be the effect-
ive input. When a logic O input is
received, the input line becomes
grounded, and the internal input pull-up
is disabled, thus causing a logic 0 to be
the effective input.
SYNC Magazine
From Cassette Circuitry
To
CPU
Data Bus
IC10 is enabled when the signal KBD
(see Figure 3) is active (i.e., low). As you
will note, the signal is derived from two
OR gates. Logically, the signal is KBD =
A0 + RD + IORQ. Essentially, all of the
three inputs must be low to enable IC10.
This means that an I/O read (a Z80 IN
instruction) is being done from any even
address (i.e., any address with AO = 0).
During an I/O request (IORQ=0), the
contents of the A register are placed on
the higher eight bits of the address bus.
During a keyboard read, the higher eight
bits of the address are referred to as the
keyboard mask. Executing an IN A, FEh
instruction will output the keyboard
mask and then read the value of IC10
into the A register. (NB FEh is not the
only possible port address; any even
value will work.)
A simple routine to test for the
BREAK key is shown below:
LD A,7Fh
JR NC, BRKPRS
May/June 1981
Figure 3.
The first instruction loads the keyboard
mask into A. This particular mask has all
but the ms bit of A (bit 7) set (i.e.. 0111
1111 binary). The IN instruction puts out
the mask and reads a column from the
keyboard. With a mask of 7Fh. the col-
umn read is BREAK, EDIT. P. RUB-
OUT, NOT, NEW, LIST, SHIFT.
When the IN terminates, if no keys
were hit, all of the keyboard bits (i.e., d0-
d4 of A) will be set. If a key is pressed.
then its corresponding bit in A will be a
logic 0. provided it was in the selected
column. After the IN instruction. the
data for the BREAK key will. therefore.
reside in bit 0 of A.
The RRA instruction rotates the con-
tents of register A one bit to the right. Bit
7 comes from the data in the carry flag.
The carry flag is set to the data in bit 0
position of A (i.e., the data for the
BREAK key). Now the carry flag will
contain a 0 if BREAK was pressed; other-
wise it will hold a 1. The next instruction.
if the carry flag is clear, will jump to
BRKPRS.
The keyboard and display subroutine
scans the keyboard to see if a key was
pressed; if not, it passes a frame to the
display and loops back to the keyboard
scan section. If a key is pressed. then the
routine will return to its caller. This rou-
tine is shown in Listing 1.
To use the routine, execute a CALL
13Ch instruction. It will return a value in
the BC register pair, which corresponds
to the keyboard mask and column input
for the key pressed. Bits 5. 6. and 7 will be
set to ones by the OR OEOh instruction at
5$:. Bit 0 of B will be zero if SHIFT was
pressed; otherwise it will be a 1. C will
hold the keyboard mask. For example. if
the Z key is pressed, B will hold F7h (i.e.,
1111 0111) and C will hold FEh (i.e.. 1111
1110).
Listing 2 shows a method for obtaining
a ZX80 character in A. The subroutine
FILLDF assures that there are enough
NewLines in the display file.
I hope that this article has provided
some insight into the workings of the
ZX80 keyboard. L]
43
5$
44
RESULT: EQU
FRAMES: EQU
CH_ADD: EQU
LOOP: Call Show;
DISP:
LD B.&
DJNZ $
LD HL. (FRAMES)
INC HL
LD (FRAMES).HL
LD HL.-1
LD B. ÓFEh
LD C.B
IN A. (C)
OR 1
OR GEph
LD D.A
CPL
CP 1
SBC A.A
ORB
AND L
LD L.A
LD A.H
AND D
LD H.A
RLCB
IN A. (C)
JR C.5$
RRA
RLH
RLA
RLA
RLA
SBC A.A
Listing 1.
4022h OR E
401Eh RET Z
4026h
Space between last line of chars
and fram sync LD A.B
Enter here from BASIC to get a CP 254
key and display the current SBC A.A.
display file AND B
RRA
Address 319 decimal LD (HL). A
I3F hex DEC B
2$: DINZ 2$
Blow away 99 T-States OUT (@FFh). A
Get old frame counter LD A.-29
Increment it LD B.25
Put it back LD HL. (D FILE)
SET TH
CALL SHOW
Start frame sync
LD A.-13
INC B
DEC HL
Zero bit for each key pressed
(X_PTR)=BC. a key is
depressed and
count = f). exit with A.D.E=0
frame sync ends at next M1
Get HL= first byte of display
file
Insure Interrupt
Display space above picture and
lines of text
One less line below picture than
above
#picture lines in first line of text
(31)
Value for R in subsequent lines
Will return to caller at end of
picture
AND 24: @ if US. 24 if UK
ADD A.32
LD(RESULT+1).A :
LD BC. (CH_ADD)
LD (CH ADD). HL
LD A.B
ADD A.2
SBC HL.BC
EX DE HL
LD HL. RESULT
LD A. (HL)
OR D
Flip bits DEC (IY + RESULT
T*1-Y) ;
i ressed. else FFh
Øf if any key pressed. else IBOR
SHOW: LD C. (IY+RESULT
+1-Y)
LD R.A
LD A.-35
Rotate mask left El
JP (HL)
IF f in mask hasn't reach carry
32 if US. 56 if UK KB TAB: EQU 06Ch
no L has a ñ for each row in FILLDF: EQU 05C2h
which a key. other than SHIFT. DISP: EQU 013Fh
was pressed; H similarly for KWLOW: EQU 0E6h
columns in dl-d5, d6d7 are GETKEY: Call FILLDP
ones. dó=f. if SHIFT pressed. Call DISP
else d§=1 SRA B
717 T-States since start of frame SBC A.A
sync. 545 before end OR 38
Pick up last times key hits. or a LD L.5
value with SUB L
d15414=01 if first time around $1: ADD A.L
SCF
RRC
Now either carry is clear and BC JR C.S1
indicates a key was pressed INC C
or carry Is set and BC=FFFFh JR NZ.GETKEY
or FEFFh. LD HL.KB__TAB-1
N.B. Neither 0000h nor FF00hisa LOPA
possible value for HL. since d6 ADD HL.DE
d7 are set and. if all of d1 to d5 LD A. (HL)
of H JR.Z.$2
L=-] ADD A.0COh
HL:= if HL=BC and C=FFH CP KWLOW
JR N C.$2
LD A. (HL)
$2: RET
Listing 2.
Fill display file w/reqd N/Ls
If more than one bit set
Here if in KW state: i.e.. convert
from
letter to keyword
Here with char in A
SYNC Magazine
°
1 a MY
THAT'S RIGHT; ADVENTURE F AM mr
AO
DROIL, SYNK, HAVE BEEN WHY, AS EVER,
BRUTALLY CAPTURE BY ONE OF
THE EVIL DING THE Nt ioe TET
MERC/FULNESSLESS, VEAK ID.
AND HIS MAD. CREATIONS, a:
NASTY, SOON -TO-BE- ee
HOUSEBROKEN=- k:
GLITCHOIPZ ... Ff
e
sts
sts.
Pe
HOUR LIL
; E ui u ra AGA A °
¿ : eee j 3 sal ON Ly 7H, Y 5 TI AA E ”
le S met NY š | : NOTHING CAN '
5 . < z £ SAVE YOU! a '
= x = `.. SOON A DIVISION
VO: ~ OF MY ‘GLITCHOIDZ' Ü
a | A (T™) WILL HURTLE
SCHEME >
PATE... Y
--] COULON'T
INTEREST YOU
IN A LITTLE
CASH COLLY A
T, DING, OL
BOXES
HAVOK w, a
EUR TES Ñ
CAN... pe PD
pita ° Ç m...
WATCH THA SGAE
SPEAR, SHORTY!
— IM NOT PROGRAMEDV
og
......
....
0°? o0
.....
.....
eee
.....
ss > 3 WHAT ‘S YOUR 2 ; so € P E: fee Ñ Š aa AY 12 "AQ 397
A EA E, DING: e = . uf a Ñ : i, > SA AXE de Z a
i i 372) s 0966 palais A es NE! SOE
YY. E A? OA OY AR
è .
ie, E a. MEA AA
COPYRIGHT ©1981 TIMO) TRUMAN = 4/8107 AAA Pas
SOON, THEY DESCEND... 11!
RIPPING, GNASHING, KNOSHING,
1" RENDING, TEARING, ANU GENERALLY
7 4 foe, VONG UNERIENDLY STUFF TO
A ` THE INNAKDS OF ALL EARTH’S
PRECIOUS E) ea
S.A HINK OF T! COMPUTER O
GAMESTERS WILL LURCH, D
PUMBEOUNDED, FROM NAA
BS THEIR FAVORITE ROUNDS Vá scian
wee ODER? SUPER INVAVERS"
AND ADVENTURE “.. “y
WHERE'S THE
CURSOR? WHERE’ S
THE i?
CORPORATE EMPIRES
WILL CRUMBLE OVER-
NIGHT, UNABLE TO
MAKE DECISIONS OR
JUGGLE BUPGETS...
= IM OUT
= $ OF MEMORY!
MY TAPE WON'T LOA!
—— — -
—
E GEORGE! YA
SCREWED UP //
OH, THENK KYEW!
THENK KYEW! IT WUZ.
NLUTHIN’? KILL. ..?
“AND IN THE END,
ONLY L WILL
REIGN SUPREME..
WHARZ `
x EARTH'S COMPUTER-
YES... THEY Wik x
IEEE AT EVERY |
VEL... I
Az TRAFFIC valle; L FALL,
UNGLIPER, FROM THE SKY...
ONE | = Poi. L o — a
~.. LING! onc THE,
ING! ome THE,
MASTER OF EVIL. LORD
OF MEN. BINDER OF m
N LAEMONS. ETC.ETC.ETC..4 EO (Z;
My GLITCHOIDZ kas
WILL TOTALLY
SABATOGE yole
GUTTEV FACE!
ocd Mer a ES
Z/ vs
ARTH WILL BEINA
PANIC NO ONE
WILL BE ABLE 70 CASH
A CHECK! CREDIT -
CARDS WILL BE USE-
LESS! LIBRARY- CARDS
WILL BE REVOKED!
*‘REAVERS A ae
WILL HAVE 2,000,000
WINNERS! YES! 4 THE
SUPREME CHAOS! THE
ULTIMATE FANDEMONILIM!
BEULAM ON EARTH 111
COMPUTER- RAGE
'S HERE ITI!
BOT, SUPPENLY.. 13 MO?! me COMP] -
PROD HAS FREED HIS
OAFISH MASTER! THEY VE
Y
BURST THENRZ
GONDPS
⁄
<,
se
4
FREE AT LAST.’ FREE 70
PISPELL THESE NOISE y,
PP THER ONHYGEN/C LOYTS
THOROUGHLY HEROIC
IE HASTY, ESCAPE
A
U a (72
7,
i’
—
°
Y ATM
DADAS
°...
.....
eo. | COUL? HAVE
BEEN ANYTHING...!
A e
THE EMPERDK!... i
SIMPLE DATA STORAGE SIRENESQUE E 7 . ` f:
COMPUTER !... A SS ty =
TOASTER... A WASHER- HOOKED |Z f fe WW WG SITY F. ty
ANV-VRYER-ZOMBO?...
ANYTHING Z. HAY
OH, BE STILL. AT
LEAST WE'RE
WARM. AND
PRY...
a eee AM P E AR,
FAR FROM
THE AWFUL,
MATRIMONIAL
CLUTCHES OF THAT
SIRENESQUE FL00ZY
ON PSORIOSIS I£... 7
FLOOZY YY
1222 A
HAIRBAG Le
OF INDUSTRIAL SN
WHAT HO...!
A |
== —
y a
NO SPEECHES /
JUST PO
i
ZZ =
|
,
Les >
a = SJ
N
i
2~ `<
a n
a
Ae
a) l
Y
SS
IF THAT MEANS WE'RE
LEAVING, THEN IM ALL
FOR IT!
.
.
.
oe
W
>
°...
oo
soso
eve
°
oe
je
. OAD
. .
s 0e o... ...
ooo fete?
RARO
e PA
OH, BUT IT f$, CRASHY
f CURSOR! ..AND YOUR m
| TROUBLES HAVE TUST FE
A
FULL
WASTE Lf?
o (HRILLO ! SPILLS?
o is FRILLS!
My E MATKIMONyY7
SUE 3
PREVAILS”
BE THERE ! ALOHA.. PEL
Resources for the ZX80 and MicroAce
We welcome entries from manufacturers
and readers for the resources column. Please
include the name of the item. a brief
description, price. and complete data on
how to obtain it. Send contributions to
SYNC Resources. 39 East Hanover Avenue.
Morris Plains. New Jersey 07950.
Software
° Moving graphics games
Super ZX80 Invasion (1K and 2K) and
Double Breakout, Cassettes, $14.95 each
plus $1.50 shipping. Check or money
order to:
SOFTSYNC, INC.
P.O. Box 480
Murray Hill Station
New York, NY 10156
e Games and educational software.
Hardware and technical information in
the near future.
TENSOR TECHNOLOG Y
4 Morning Dove
Irvine, CA 92714
e ZXBUG (144K)
A machine code degugging program;
useful for programming in machine code.
An annotated disassembled listing of
the 4K Basic. Much more software.
Artic Computing
396 James Reckett Avenue
Hull HU8 OHA
England
e 1K games:
Adventure Cassette (Dragonslayer;
Lunar Landing; graphics)
Vegas Cassette (Black Jack. Slots)
$6.95 per cassette (postage included);
check or money order only.
J. Schwitalla
1235 Pickwick Place
Flint. MI 48507
48
° Games. subroutines. and teaching aids
in Basic and Machine Code. SASE
for complete list.
Zeta Software
P.O. Box 3522
Greenville. SC 29608
e 7 Games for the ZX80 and MicroAce
(one cassette)
$11 from:
New England Software
Box 691
Hyannis. MA 02601
e ZX80Software on cassette. Games. edu-
cational. programming course.
Bug-Byte
251 Henley Road
Conventry CV2 1BX
Users Groups
e Educational ZX80/1 Users's Group
Highgate School
Birmingham B12 9DS
U.K.
(Publishes a newsletter)
e ZX80 Amateur Radio Users’ Group
(for licensed amateur radio operators)
c/o K2MI. Martin H. Irons
46 Magic Circle Drive
Goshen. NY 10924
e National ZX80 Users Club
Membership free; publishes Interface
magazine; send large. stamped. addressed
envelope plus one 10p stamp to:
National ZX80 Users Club
44-46 Earls Court Road
London. W8 6EJ
England
Hardware
e Super Isolator, Model ISO-11
A control for severe AC power line
spikes, surges, and hash.
$94.95. Call (617) 655-1532
Electronic Specialists, Inc.
171 S. Main St.
Natick, MA 01760
e 16K-Byte RAM for massive add-on
memory.
$99.95 + $4 shipping.
8K Basic ROM (replacement chip
for ZX80).
$39.95 + $4 shipping.
Phone orders (Visa, Master Card):
800-543-3000, op. 508
Mail orders:
Sinclair Research Ltd.
1 Sinclair Plaza
Nashua, NH 03061
e Keyboard beeper, $12
Burnett Electronics
908 Morris St.
Cincinnati, OH 45206
e 33 Key keyboards for the ZX80 or Micro-
Ace.
Complete plans for $5: keyboard $14.95.
Complete kit (keyboard, parts. etc.):
$29.95.
Schultz Systems
1026 Ferdinand
San Antonio. TX 78245
SYNC Magazine
*
Eoo G
The Sinclair ZX80 is innovative and powerful.
Now there’s a magazine to help you get
the most out of it.
SYNC magazine is different from other
personal computing magazines. Not just
different because it is about a unique
computer, the Sinclair ZX80 (and kit ver-
sion, the MicroAce). But different be-
cause of the creative and innovative phi-
losophy of the editors.
A Fascinating Computer
The ZX80 doesn't have memory map-
ped video. Thus the screen goes blank
when a key is pressed. To some review-
ers this is a disadvantage. To our editors
this is a challenge. One suggested that
games could be written to take advan-
tage of the screen blanking. For exam-
ple, how about a game where characters
and graphic symbols move around the
screen while it is blanked? The object
would be to crack the secret code gov-
erning the movements. Voila! A new
game like Mastermind or Black Box
uniquely for the ZX80.
We made some interesting discoveries
soon after setting up the machine. For
instance, the CHR$ function is not limit-
ed to a value between 0 and 255, but
cycles repeatedly through the code.
CHR$ (9) and CHR$ (265) will produce
identical values. In other words, CHR$
operates in a MOD 256 fashion. We
found that the "=" sign can be used se-
veral times on a single line, allowing the
logical evaluation of variables. In the
Sinclair, LET X=Y=Z=W is a valid ex-
pression.
Or consider the TL$ function which
strips a string of its initial character. At
first, we wondered what practical value it
had. Then someone suggested it would
be perfect for removing the dollar sign
from numerical inputs.
Breakthroughs? Hardly. But indicative
of the hints and kinds you'll find in every
issue Of SYNC. We intend to take the
Sinclair to its limits and then push be-
yond, finding new tricks and tips, new
applications, new ways to do what
couldnt be done before. SYNC functions
on many levels, with tutorials for the be-
ginner and concepts that will keep the
pros coming back for more. We'll show
you how to duplicate commands avail-
able in other Basics. And, perhaps, how
to do things that can't be done on other
machines.
Many computer applications require
that data be sorted. But did you realize
there are over ten fundamentally differ-
ent sorting algorithms? Many people
settle for a simple bubble sort perhaps
because it’s described in so many pro-
gramming manuals or because they've
seen it in another program. However,
sort routines such as heapsort or Shell-
Metzner are over 100 times as fast as a
bubble sort and may actually use less
memory. Sure, 1K of memory isn't a lot
to work with, but it can be stretched
much further by using innovative, clever
coding. You'll find this type of help in
SYNC.
Lots of Games and Applications
Applications and software are the meat
of SYNC. We recognize that along with
useful, pragmatic applications, like finan-
cial analysis and graphing, you'll want
games that are fun and challenging. In
the charter issue of SYNC you'll find se-
veral games. Acey Ducey is a card game
in which the dealer (the computer) deals
two cards face up. You then have an op-
tion to bet depending upon whether you
feel the next card dealt will have a value
between the first two.
In Hurkle, another game in the charter
issue, you have to find a happy little
Hurkle who is hiding ona 10 X 10 grid. In
response to your guesses, the Hurkle
sends our a clue telling you in which
direction to look next.
One of the most ancient forms of arith-
metical puzzle is called a ‘boomerang.’
The oldest recorded example is that set
down by Nicomachus in his Arithmetica
around 100 A.D. You'll find a computer
version of this puzzle in SYNC.
Hard-Hitting, Objective Evaluations
By selecting the ZX80 or MicroAce as
your personal computer you've shown
that you are an astute buyer looking for
good performance, an innovative design
and economical price. However, select-
ing software will not be easy. That's
where SYNC comes in. SYNC evaluates
software packages and other peripherals
and doesnt just publish manufacturer
descriptions. We put each package
through its paces and give you an in-
depth, objective report of its strengths
and weaknesses.
SYNC is a Creative Computing pub-
lication. Creative Computing is the num-
ber 1 magazine of software and applica-
tions with nearly 100,000 circulation.
The two most popular computer games
books in the world, Basic Computer
Games and More Basic Computer
Games (combined sales over 500,000)
are published by Creative Computing.
Creative Computing Software manufac-
tures over 150 software packages for six
different personal computers.
Creative Computing, founded in 1974
by David Ahl, is a well-established firm
committed to the future of personal com-
puting. We expect the Sinclair ZX80 to
be a highly successful computer and
correspondingly, SYNC to be a respect-
ed and successful magazine.
Order SYNC Today
To order your subscription to SYNC, in
the USA send $10 for one year (6
issues), $18 for two years (12 issues) or
$24 for three years (18 issues). Send
order and payment to the address below
or call MasterCard, Visa or American Ex-
press orders to our toll-free number.
Subscriptions in the UK are mailed by
alr and cost £ 10 for one year, £ 18 for
two years or f 25 for three years. Send
order and payment to the UK address
below.
Canadian and other foreign surface
subscriptions cost $15 per year or $27
for two years and should be sent to the
USA address.
We guarantee your satisfaction or we
will refund your entire subscription price.
Needless to say, we cant fill up all the
pages without your help. So send in your
programs, articles, hints and tips.
Remember, illustrations and screen
photos make a piece much more inter-
esting. Send in your reviews of peripher-
als and software too—but be warned: re-
views must be in-depth and objective.
We want you to respect what you read on
the pages of SYNC so be honest and
forthright in the material you send us. Of
course we pay for contributions—just
dont expect to retire on it.
The exploration has begun. Join us.
The magazine for Sinclair 2X80 users
TI
39 East Hanover Avenue
Morris Plains, NJ 07950, USA
Toll free 800-631-8112
(In NJ 201-540-0445)
27 Andrew Close, Stoke Golding
Nuneaton CV13 6EL, England
a Ft "DT -sh -
THE CAI "WIDGET’® SERIES
OF PERIPHERALS FOR THE ZX-80
OPENS THE DOOR TO REAL COMPUTING
M Check Our Specifications
WIDGET® #499
PARALLEL TTL INPUT PORT
e Eight bits non-latched
e Draws one low power Schottky
load
e Uses:
Interface to user designed
circuits
Sensing alarm conditions
Interpreting-limit switches
Accepting user switches or
other input devices
PARALLEL TTL OUTPUT PORT
e Eight bits concurrently latched
e Supplies up to ten (10) low power
Schottky loads
e Uses:
Interface to user designed
Circuits
Activating Led’s, Lamps and
Indicators
Powering relays, SCRS and
TRIACS for high current 110
VAC loads
Sounding alarms
SERIAL RS-232 INPUT/OUTPUT PORT
e Three wire bi-directional
serial line
e Baud rates strappable at 110, 300,
1200, 2400, 9600
e Communicate with:
Serial printers
Modems (transmit and receive
data only)
Terminals (teletypes and CRT's)
Graphic plotters
ADDRESS AND CONTROL SIGNALS
from the ZX-80 are all buffered to
allow ease of expansion.
WIDGET INTERFACES DIRECTLY TO
THE WIDGIPRINT and WIDGITAPE
and the 16K RAM and 8K ROM by
simply, plugging one into another.
The WIDGET, like all CAI devices, comes
with complete schematics and instructions.
WIDGIPRINT® #9995
HIGH QUALITY THERMAL PRINTER at
a very affordable price
THE WIDGIPRINT PROVIDES
THIRTY-TWO (32) COLUMNS OF
OUTPUT in compliance with the for-
mat shown on the television screen
EASY INSTALLATION
The CAI Printer is designed to
plug directly into its own port on
the Widget board. This leaves all
eight I/O bits on the WIDGET
board available to the user.
There is no soldering or
modifications necessary
The printer is equipped with its
own power supply
SPECIFIC PRINTER SPECIFICATIONS
Full alpha-numeric capabilities
with limited graphics
Thirty-two (32) characters per line
Self-contained power system
Two-hundred lines / minute print
speed
Long life — few moving parts
Paper size 3.15” roll style readily
available e Size 6.4” x 1.9” x 3.7"
The PRINTER comes with a complete
instruction and operations manual.
WIDGITAPE® $9995
The WIDGITAPE is designed as a highly
reliable mass storage device for the
data generated with the ZX-80. This de-
vice interfaces through the CAI WIDGET
Board, and is completely independent of
the tape connections on the ZX-80.
The WIDGITAPE provides much of the
functionality found in floppy disks for a
fraction of the cost.
THIS INCLUDES
e Writing a file
e Reading a file
e Extending or modifying a file
e Deleting a file
e Each tape also maintains its own
file directory which can be viewed
on the television screen
All these functions are programmati-
cally accessable to the user via simple
keyboard commands.
INSTALLATION
e The WIDGITAPE plugs into its own
plug on the WIDGET Board with no
need to solder or modify the ZX-80.
USE THIS FORM TO ORDER YOUR WIDGET® PERIPHERALS
Send Check, Money Order Or
Credit Card Number To:
CAI Instruments, Inc.
P.O. Box 446
Midland, MI 48640
517/835-6145 —
541
Add $5.00 for shipping and handling
Michigan residents add 4% sales tax
ZIP
|
|
|
|
|
| Quantity Description Unit Price Total
| WIDGET® $49.95
| _ WIDGIPRINT® $99.95
| WIDGITAPE® $99.95
| TOTAL
|
| Mastercharge — Visa
| Exp. Date
| Name
| Address
| City ——— UÁ D SO
|